Singkatnya: == Konversi tipe terlebih dahulu dan kemudian bandingkan, === Hakim tipe terlebih dahulu, jika bukan tipe yang sama, itu langsung salah.
=== berarti bahwa kedua sisi perbandingan harus sama sekali sama
peringatan (0 == ""); // truealert (0 == false); // truealert ("" == false); // BENAR peringatan (0 === ""); // falsealsealert (0 === false); // falsealsealert ("" === false); // PALSUMari kita bicara tentang ===, ini relatif sederhana, aturan perbandingan spesifik adalah sebagai berikut:
1. Jika jenisnya berbeda, mereka [tidak setara]
2. Jika keduanya adalah nilai numerik dan nilai yang sama, maka [sama]; (! Pengecualian) adalah, jika setidaknya satu dari mereka adalah Nan, maka [tidak sama]. (Untuk menentukan apakah nilai NAN, Anda hanya dapat menggunakan isnan () untuk menilai)
3. Jika keduanya adalah string dan karakter di setiap posisi adalah sama, maka [kesetaraan]; jika tidak [tidak sama].
4. Jika kedua nilai itu benar, atau keduanya salah, maka [setara].
5. Jika kedua nilai mengacu pada objek atau fungsi yang sama, maka [kesetaraan]; jika tidak [tidak sama].
6. Jika kedua nilai itu nol, atau keduanya tidak terdefinisi, maka [sama].
Mari kita bicara tentang ==, aturan perbandingan spesifik adalah sebagai berikut:
1. Jika kedua jenis nilainya sama, lakukan perbandingan ===, dan aturan perbandingannya sama seperti di atas.
2. Jika kedua jenis nilai berbeda, mereka mungkin sama. Konversi jenis dilakukan sesuai dengan aturan berikut dan kemudian dibandingkan:
A. Jika satu nol dan yang lainnya tidak terdefinisi, maka [sama].
B. Jika satu adalah string dan yang lainnya adalah nilai numerik, ubah string menjadi nilai numerik dan kemudian bandingkan.
C. Jika ada nilai yang benar, konversinya menjadi 1 dan bandingkan; Jika ada nilai yang salah, konversinya ke 0 dan bandingkan.
D. Jika satu objek dan yang lainnya adalah numerik atau string, ubah objek menjadi nilai jenis dasar dan kemudian bandingkan. Konversi objek ke tipe dasar dan gunakan metode tostring atau nilai. Kelas bawaan inti JS akan mencoba untuk menghargai sebelum tostring; Pengecualian adalah Tanggal, yang menggunakan konversi Tostring. Objek inti non-JS, katakanlah (lebih merepotkan, saya tidak banyak mengerti)
e. Kombinasi lain (array array, dll.), [Tidak setara].