Rumah > hujung hadapan web > tutorial js > Mengapa '0' Sama Palsu, Tetapi Ia Benar Apabila Diuji dengan jika dalam JavaScript?

Mengapa '0' Sama Palsu, Tetapi Ia Benar Apabila Diuji dengan jika dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-04 19:19:02
asal
988 orang telah melayarinya

Why Does

Teka-teki Kesamaan JavaScript: "0" Adalah Palsu, Tetapi Ia Benar Apabila Diuji dengan if

Pengendali kesamaan JavaScript boleh membawa kepada hasil yang tidak dijangka, seperti yang ditunjukkan oleh kod berikut:

console.log("0" == false); // true
console.log(false == "0"); // true
Salin selepas log masuk

Kod ini membayangkan bahawa rentetan "0" adalah bersamaan dengan nilai Boolean palsu. Walau bagaimanapun, kod berikut mencetak "ha" walaupun syaratnya ialah "0":

if ("0") console.log("ha"); // ha
Salin selepas log masuk

Mengapa ini berlaku?

Untuk memahami tingkah laku ini, kita perlu untuk memahami nilai JavaScript yang benar dan palsu. Dalam JavaScript, nilai berikut adalah palsu:

false
0
""
null
undefined
NaN
Salin selepas log masuk

Semua nilai lain adalah benar.

Dalam dua baris pertama coretan kod, pengendali kesamaan (==) melakukan paksaan jenis untuk membandingkan rentetan "0" dengan nilai Boolean palsu. Memandangkan "0" ialah nilai palsu, ia dianggap sama dengan palsu.

Walau bagaimanapun, pernyataan if dalam baris ketiga kod menggunakan kesamaan ketat (===), yang hanya mempertimbangkan nilai jenis yang sama sama rata. Memandangkan "0" ialah rentetan dan false ialah Boolean, syarat tersebut dinilai sebagai palsu.

Untuk mengelakkan kekeliruan, adalah disyorkan untuk menggunakan kesamaan yang ketat (===) apabila membandingkan nilai dalam JavaScript. Kod yang diubah suai berikut akan mencetak "nothing":

if ("0" === false) console.log("ha"); // nothing
Salin selepas log masuk

Dengan memahami perbezaan antara kesamaan (==) dan kesamaan ketat (===), anda boleh menulis kod JavaScript yang membandingkan nilai dengan tepat.

Atas ialah kandungan terperinci Mengapa '0' Sama Palsu, Tetapi Ia Benar Apabila Diuji dengan jika dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan