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!