Rumah  >  Artikel  >  hujung hadapan web  >  Bilakah `&&` Litar pintas dalam JavaScript dan Mengapa?

Bilakah `&&` Litar pintas dalam JavaScript dan Mengapa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 20:08:03215semak imbas

When Does `&&` Short-Circuit in JavaScript and Why?

Memahami Pintasan Bersyarat "&&" dalam JavaScript

Dalam JavaScript, pengendali "&&" yang dikenali sebagai operator "bersyarat dan" membenarkan anda untuk melaksanakan blok kod berdasarkan syarat tertentu.

Apakah yang dilakukan oleh "&& foo()"?

Ungkapan "x && foo()" adalah bersamaan dengan pernyataan bersyarat berikut:

if (x) {
  foo();
}

Ini bermakna foo() hanya akan dilaksanakan jika x benar (bukan null, undefined, 0, NaN atau rentetan kosong).

Mengapa ini berlaku?

JavaScript mempunyai ciri yang dipanggil "litar pintas" untuk pengendali bersyarat seperti "&&" dan "||" (logik atau). Ini bermakna bahawa penilaian operan kedua dilangkau jika operan pertama mencukupi untuk menentukan hasil.

Dalam kes "&&", jika x adalah palsu, ungkapan menilai kepada palsu serta-merta dan foo( ) tidak pernah dilaksanakan. Sebaliknya, jika x benar, ungkapan dinilai kepada benar, dan foo() kemudiannya dilaksanakan.

Implikasi Litar Pintasan

Sementara pendek ini -tingkah laku litar boleh menjadi mudah, adalah penting untuk mengetahui kemungkinan perangkapnya. Sebagai contoh, jika foo() mempunyai kesan sampingan yang tidak bergantung pada nilai x, kesan sampingan ini tidak akan berlaku jika x adalah palsu.

Selain itu, berhati-hati dengan operan yang menilai kepada nilai kebenaran tetapi mewakili ketiadaan data atau kes khas, seperti 0 atau rentetan kosong. Dalam situasi ini, secara amnya lebih baik menggunakan pernyataan bersyarat eksplisit untuk mengendalikannya secara eksplisit.

Atas ialah kandungan terperinci Bilakah `&&` Litar pintas dalam JavaScript dan Mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn