Rumah  >  Artikel  >  hujung hadapan web  >  Pengenalan kepada operator == dan === dalam kemahiran JavaScript_javascript

Pengenalan kepada operator == dan === dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 16:23:001259semak imbas

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

Salin kod Kod adalah seperti 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);//true

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn