Rumah > hujung hadapan web > tutorial js > Mengapakah '0' Menilai kepada Benar dalam Pernyataan if Tetapi Salah dalam Perbandingan?

Mengapakah '0' Menilai kepada Benar dalam Pernyataan if Tetapi Salah dalam Perbandingan?

Linda Hamilton
Lepaskan: 2024-11-05 10:47:01
asal
380 orang telah melayarinya

Why Does

Memahami Keanehan JavaScript: Mengapa "0" Adalah Palsu tetapi Tidak Palsu dalam Penyata if

Dalam JavaScript, penilaian nilai dalam konteks logik—seperti dalam jika pernyataan atau perbandingan Boolean—boleh menghasilkan keputusan yang tidak dijangka. Tingkah laku ini disebabkan oleh mekanisme paksaan jenis JavaScript.

JavaScript menaip nilainya secara longgar dan apabila rentetan atau nilai nombor digunakan dalam konteks logik, ia mengalami paksaan jenis untuk menukarnya kepada nilai boolean. Dalam penukaran ini, rentetan bukan kosong dan nombor bukan sifar dinilai kepada benar, manakala rentetan kosong dan nombor sifar dinilai kepada palsu.

Oleh itu, apabila anda membandingkan "0" dengan palsu menggunakan == atau === , ia mengembalikan benar kerana paksaan jenis menukar kedua-dua "0" (rentetan tidak kosong) dan palsu (nilai seperti sifar) kepada benar.

Walau bagaimanapun, apabila menggunakan pernyataan if, "0" sahaja menilai kepada benar. Ini kerana jika penyataan secara dalaman menggunakan nilai boolean yang dipaksa, yang mengembalikan benar untuk rentetan bukan kosong.

Untuk mengelakkan sebarang kekaburan, disyorkan untuk menggunakan pengendali kesaksamaan yang ketat === apabila membandingkan nilai primitif, sebagai ia melakukan perbandingan tanpa paksaan jenis. Ini memastikan bahawa "0" dinilai dengan betul sebagai palsu apabila perlu.

Rujuk jadual yang dilampirkan untuk gambaran ringkas tentang tingkah laku JavaScript yang benar/palsu untuk pelbagai jenis data. Ingat, untuk perbandingan kesaksamaan sebenar, sentiasa pilih ===.

Atas ialah kandungan terperinci Mengapakah '0' Menilai kepada Benar dalam Pernyataan if Tetapi Salah dalam Perbandingan?. 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