Menyingkap Sifat Enigmatik Tatasusunan Kosong dalam JavaScript
Tatasusunan kosong dalam JavaScript mempamerkan dualiti yang pelik, nampaknya benar dan palsu serentak. Tingkah laku yang membingungkan ini berpunca daripada penukaran tersirat yang dilakukan oleh pengendali kesaksamaan. Untuk menyelidiki mekanisme asas, mari kita terokai coretan kod di bawah:
<br>var arr = [];<br>console.log('Array:', arr);<br>if (arr) console.log("Ia benar!");<br>if (arr == false) console.log("It's false!");<br>if (arr && arr == false) console .log("...apa??");<br>
Pernyataan if pertama mengesahkan kehadiran objek arr (Array ialah instance bagi Objek), mengembalikan benar. Walau bagaimanapun, pernyataan if dengan arr == false membandingkan nilai objek arr dengan nilai primitif false. Untuk melakukan perbandingan ini, arr.toString() digunakan secara tersirat, mengembalikan rentetan kosong "".
Hasil ini dijelaskan oleh gelagat Array.join(). Apabila toString() dipanggil pada tatasusunan, ia mengembalikan hasil gabungan untuk memanggil join() pada tatasusunan itu. Oleh kerana tatasusunan kosong, hasilnya ialah rentetan kosong, yang termasuk dalam kategori nilai palsu dalam JavaScript. Oleh itu, arr.toString() menilai kepada false, mengakibatkan if (arr == false) kembali benar.
Kes pelik if (arr && arr == false) menyerlahkan operasi logik DAN ( &&) pengendali. Untuk keseluruhan pernyataan adalah benar, kedua-dua syarat mesti menilai kepada nilai kebenaran. arr dengan sendirinya adalah benar, tetapi arr == false menilai kepada benar kerana penukaran tersirat yang disebutkan di atas. Oleh itu, kata hubung itu menilai kepada benar, membawa kepada yang kelihatan bercanggah "Ia palsu!" keluaran.
Atas ialah kandungan terperinci Mengapa Tatasusunan Kosong Nampak Betul dan Salah dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!