=== (kesetaraan ketat) membandingkan nilai dan tipe tanpa konversi. == (kesetaraan longgar) melakukan koersi tipe terlebih dahulu, yang menghasilkan hasil yang mengejutkan.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
=== (kesetaraan ketat) membandingkan nilai dan tipe tanpa konversi. == (kesetaraan longgar) melakukan koersi tipe terlebih dahulu, yang menghasilkan hasil yang mengejutkan.
== ;
== ;
== ;
== ;
== ;
=== ;
=== ;
Aturan koersi tidak jelas dan menyebabkan bug. Sebagai contoh, [] == ![] adalah true (sebuah keanehan terkenal). Anda jarang menginginkan JavaScript secara diam-diam mengonversi tipe di belakang layar selama perbandingan.
Selalu gunakan === (dan !==). Satu-satunya pengecualian yang umum dan disengaja adalah memeriksa null atau undefined bersama-sama:
if (value == null) { ... } // true for BOTH null and undefined — a deliberate idiom
Untuk segalanya, kesetaraan ketat membuat perbandingan dapat diprediksi. Untuk membandingkan objek Anda memerlukan pemeriksaan kesetaraan mendalam (mereka membandingkan berdasarkan referensi, jadi {a:1} === {a:1} adalah false).