Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Tatasusunan Kosong Dinilai kepada Kedua-dua Betul dan Salah dalam JavaScript?

Mengapa Tatasusunan Kosong Dinilai kepada Kedua-dua Betul dan Salah dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 02:10:01321semak imbas

Why Do Empty Arrays Evaluate to Both Truthy and False in JavaScript?

Kekeliruan tentang Kebenaran Tatasusunan Kosong dan Kesamaan dengan Salah

Dalam JavaScript, tatasusunan kosong dianggap benar. Walau bagaimanapun, jika dibandingkan dengan nilai primitif palsu, mereka juga menilai palsu. Tingkah laku yang membingungkan ini boleh dikaitkan dengan penukaran jenis tersirat yang dilakukan oleh pengendali kesaksamaan.

Mari kita lihat dengan lebih dekat contoh kod yang disediakan:

var arr = [];
console.log('Array:', arr);
if (arr) console.log("It's true!");
if (arr == false) console.log("It's false!");
if (arr && arr == false) console.log("...what??");

Pernyataan if pertama menyemak jika arr adalah hadir (sebagai objek). Memandangkan arr ialah objek Array, ia hadir dan keadaan dinilai kepada benar.

Walau bagaimanapun, pernyataan if kedua membandingkan nilai arr (selepas memanggil keString()) dengan nilai primitif palsu. Dalam JavaScript, [] ditukar kepada rentetan kosong ("") apabila dipanggil dengan toString(), yang dianggap sebagai nilai palsu (bersama-sama dengan null, undefined, 0, dsb.). Oleh itu, syarat juga dinilai palsu.

Pernyataan if ketiga menggabungkan dua syarat sebelumnya menggunakan operator AND (&&). Oleh kerana kedua-dua arr (kini rentetan kosong) dan arr == false (true & false) dinilai kepada false, keseluruhan syarat dinilai kepada false.

Kesimpulannya, tatasusunan kosong adalah benar dalam erti kata ia dianggap sebagai mempersembahkan dan menilai kepada benar apabila digunakan dalam konteks objek atau bersyarat. Walau bagaimanapun, jika dibandingkan dengan nilai primitif palsu, nilai tersebut dinilai palsu disebabkan oleh penukaran jenis tersirat yang dilakukan oleh operasi kesamaan.

Atas ialah kandungan terperinci Mengapa Tatasusunan Kosong Dinilai kepada Kedua-dua Betul dan Salah dalam JavaScript?. 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