Dalam JavaScript, tidak ada string yang sama dengan null
.
Mungkin Anda diharapkan pass == null
benar ketika pass
string kosong karena Anda menyadari bahwa operator kesetaraan longgar ==
melakukan jenis paksaan jenis tertentu.
Misalnya, ungkapan ini benar:
'' == 0
Sebaliknya, operator kesetaraan yang ketat ===
mengatakan bahwa ini salah:
'' === 0
Mengingat itu ''
dan 0
secara longgar sama, Anda mungkin bisa menduga itu ''
dan null
secara longgar sama. Namun, tidak demikian.
Ungkapan ini salah:
'' == null
Hasil membandingkan sembarang string null
adalah salah. Karena itu, pass == null
dan semua tes Anda yang lain selalu salah, dan pengguna tidak pernah mendapat peringatan.
Untuk memperbaiki kode Anda, bandingkan setiap nilai dengan string kosong:
pass === ''
Jika Anda yakin itu pass
adalah string, pass == ''
juga akan berfungsi karena hanya string kosong yang sama dengan string kosong. Di sisi lain, beberapa ahli mengatakan bahwa ini adalah praktik yang baik untuk selalu menggunakan kesetaraan ketat dalam JavaScript kecuali Anda secara spesifik ingin melakukan pemaksaan tipe yang dilakukan oleh operator kesetaraan longgar.
Jika Anda ingin tahu pasangan nilai apa yang secara longgar setara, lihat tabel "perbandingan kesamaan" di artikel Mozilla tentang topik ini .