Rumah > Artikel > hujung hadapan web > Pengenalan kepada operator == dan === dalam kemahiran JavaScript_javascript
Dalam JavaScript, kedua-dua operator == dan === boleh digunakan untuk menentukan sama ada dua nilai adalah sama, perbezaannya ialah jika kedua-dua jenis nilai tidak konsisten, operator === akan kembali palsu, manakala Operator == akan dinilai selepas penukaran jenis. Peraturan penghakiman terperinci adalah seperti berikut:
=== Peraturan penghakiman untuk pengendali
1. Jika jenis kedua-dua nilai tidak konsisten, kembalikan palsu.
2. Jika kedua-dua nilai mempunyai jenis yang sama dan nilai yang sama, kembalikan benar. NaN ialah kes khas, NaN === NaN mengembalikan palsu.
3. Jika kedua-dua nilai adalah kedua-dua jenis objek, maka sama seperti Java, melainkan jika kedua-dua rujukan itu konsisten (titik rujukan kepada alamat objek yang sama), walaupun kandungan dalam objek itu betul-betul sama, dua nilai dianggap tidak konsisten, dan operasi yang sepadan dilakukan akan mengembalikan palsu. Sebagai contoh, jika anda mencipta dua tatasusunan baharu dengan kandungan yang betul-betul sama, dan melakukan operasi === padanya, hasil pulangan adalah palsu - walaupun kandungannya betul-betul sama, ia masih tergolong dalam dua objek berbeza.
4.0===-0 mengembalikan benar.
==Peraturan penghakiman untuk pengendali
Operator== akan menukar jenis nilai sebelum perbandingan Penukaran jenis mengikut prinsip berikut: ia mula-mula ditukar kepada nombor sebelum perbandingan, dan objek Tarikh mula-mula ditukar kepada rentetan sebelum perbandingan. Peraturan penghakiman khusus adalah seperti berikut:
1 Jika kedua-dua jenis nilai adalah konsisten, lakukan operasi === dan kembalikan.
2.null==undefined adalah benar.
3. benar akan ditukar kepada 1 sebelum perbandingan, palsu akan ditukar kepada 0 sebelum perbandingan.
4. Jika salah satu nilai adalah objek, tukarkannya kepada nombor sebelum perbandingan, kecuali untuk objek Tarikh.
5. Jika salah satu nilai adalah objek Tarikh, tukarkannya menjadi rentetan sebelum perbandingan.
Percubaan
console.log("3" == 3);//true
console.log(null == undefined);//true
console.log(true == 1);//true
console.log(true == 9);//false
console.log([9] == 9);//true
console.log([9] == "9");//true
var d = Tarikh baharu();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false