Penilaian Litar Pintas JavaScript - Panduan Komprehensif
Dalam pengaturcaraan, penilaian litar pintas merujuk kepada tingkah laku di mana ungkapan dinilai sehingga keputusan diketahui, dan ungkapan selebihnya dilangkau. Mekanisme ini biasanya digunakan dalam pernyataan bersyarat untuk mengelakkan pengiraan yang tidak perlu.
Adakah JavaScript Menyokong Penilaian Litar Pintas?
Ya, JavaScript menyokong penilaian litar pintas. Seperti yang ditunjukkan dalam contoh di bawah, && (DAN) dan || (ATAU) pengendali mempamerkan tingkah laku ini.
Contoh:
Pertimbangkan kod JavaScript berikut:
if (true || foo.foo) { // Passes, no errors because `foo` isn't defined. }
Demo Langsung: https://jsfiddle.net/iayzejre/
Penjelasan:
The || operator akan segera kembali benar apabila operan pertama (dalam kes ini, benar) menilai kepada benar. Oleh itu, ungkapan akan lulus tanpa mengira sama ada foo.foo ditakrifkan atau tidak, kerana operan kedua tidak dinilai.
Contoh:
Sekarang pertimbangkan kod ini:
if (false && foo.foo) { // Also passes, no errors because `foo` isn't defined. }
Demo Langsung: https://jsfiddle.net/iayzejre/1/
Penjelasan:
Begitu juga, operator && hanya akan menilai operan kedua jika operan pertama bernilai benar . Memandangkan false sentiasa palsu, syaratnya gagal serta-merta dan foo.foo tidak pernah dinilai.
Penyelesaian untuk Bahasa Lain
Jika bahasa pengekodan anda tidak menyokong short- penilaian litar, terdapat kemungkinan penyelesaian menggunakan operator ternary. Pertimbangkan contoh C# ini:
if (true ? true : foo.foo) { // Passes without compilation errors. }
Dalam kes ini, pengendali ternary akan segera kembali benar jika operan pertama (keadaan benar) adalah benar. Jika palsu, ia akan menilai operan kedua (ungkapan foo.foo). Walau bagaimanapun, penyelesaian ini mungkin tidak sesuai untuk semua senario dan harus digunakan dengan berhati-hati.
Atas ialah kandungan terperinci Adakah JavaScript Menggunakan Penilaian Litar Pintas dalam Operator Logik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!