Dalam JavaScript, operator == dan == dapat digunakan untuk menentukan apakah kedua nilai tersebut sama; Perbedaannya adalah bahwa jika dua nilai yang dinilai tidak konsisten, operator === akan secara langsung mengembalikan false, sedangkan operator == akan membuat penilaian setelah konversi jenis. Aturan penilaian terperinci adalah sebagai berikut:
=== Aturan untuk menilai operator
1. Jika jenis kedua nilai tidak konsisten, kembalikan false.
2. Jika kedua nilai memiliki tipe yang sama dan nilainya sama, return true. NAN adalah kasus khusus, NAN === NAN kembali salah.
3. Jika kedua nilai tersebut memiliki tipe objek, maka seperti Java, kecuali jika referensi konsisten (referensi titik ke alamat objek yang sama), bahkan jika konten dalam objek persis sama, kedua nilai tersebut dianggap tidak konsisten, dan operasi yang sesuai akan mengembalikan False. Misalnya, buat dua array baru dengan konten yang persis sama, dan kemudian lakukan operasi === pada mereka dan kembalikan hasilnya menjadi false - meskipun konten mereka persis sama, mereka masih milik dua objek yang berbeda.
4.0 ===-0 Mengembalikan true.
== aturan untuk penilaian operator
Operator == akan mengetikkan nilai dan kemudian membandingkannya. Konversi tipe mengikuti prinsip -prinsip berikut: Pertama -tama ubah menjadi nomor dan kemudian bandingkan, dan pertama -tama ubah menjadi string dan kemudian bandingkan. Aturan penilaian spesifik adalah sebagai berikut:
1. Jika kedua jenis nilai itu sama, kembalikan setelah melakukan operasi ===.
2.null == tidak ditentukan adalah benar.
3. Benar akan dikonversi menjadi 1 dan dibandingkan, false akan dikonversi menjadi 0 dan dibandingkan.
4. Jika salah satu nilai adalah objek, konversinya menjadi nomor dan kemudian bandingkan, kecuali untuk objek tanggal.
5. Jika salah satu nilai adalah objek tanggal, konversinya menjadi string dan kemudian bandingkan.
percobaan
Salinan kode adalah sebagai berikut:
console.log ("3" === 3); // false
console.log (nan === nan); // false
var a = {x: 1, y: 2};
var b = {x: 1, y: 2};
var c = a;
console.log (a === b); // false
console.log (a === c); // true
Console.log (0 === -0); // Benar
Console.log ("3" == 3); // Benar
console.log (null == tidak terdefinisi); // true
console.log (true == 1); // true
console.log (true == 9); // false
Console.log ([9] == 9); // Benar
console.log ([9] == "9"); // Benar
var d = tanggal baru ();
var s = d.tostring ();
var n = d.valueof ();
console.log (d == s); // true
console.log (d == n); // false