Memahami Kesaksamaan dalam JavaScript: Enigma "0" dan "False"
Dalam JavaScript, operator kesaksamaan (==) membuang operan kepada jenis biasa sebelum perbandingan, yang boleh membawa kepada hasil yang tidak dijangka. Satu teka-teki yang membingungkan timbul apabila menguji "0" dengan palsu menggunakan ==.
Pertimbangkan kod berikut:
"0" == false // true false == "0" // true
Ungkapan ini menilai kepada benar, membayangkan bahawa "0" bersamaan dengan palsu . Walau bagaimanapun, ini bercanggah dengan tingkah laku if("0"), yang mencetak "ha":
if("0") console.log("ha") // prints "ha"
Untuk membongkar misteri ini, kita perlu mendalami konsep nilai "benar" dan "palsu". dalam JavaScript. Operator == memaksa "0" kepada nilai Boolean, iaitu falsey. Walau bagaimanapun, pernyataan if mentafsir rentetan bukan kosong sebagai nilai kebenaran.
Untuk mengelakkan ketidakkonsistenan ini, adalah penting untuk menggunakan pengendali kesaksamaan yang ketat (===) semasa menguji kesetaraan. === melakukan perbandingan langsung nilai tanpa paksaan jenis.
"0" === false // false
Jadual di bawah menggambarkan nilai truthy dan falsey dalam JavaScript:
Value | Truthy | Falsey |
---|---|---|
0 | Falsey | True |
"0" | Truthy | False |
"" | Falsey | True |
Ingat bahawa == boleh membawa kepada keputusan yang tidak dijangka apabila membandingkan nilai pelbagai jenis. Sentiasa pilih === untuk perbandingan yang tepat dan jelas.
Atas ialah kandungan terperinci Mengapakah '0' Sama dengan 'Salah' dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!