Rumah  >  Artikel  >  hujung hadapan web  >  Pengenalan kepada perbezaan antara dua tanda sama dan tiga tanda sama dalam pengetahuan javaScript_Basic

Pengenalan kepada perbezaan antara dua tanda sama dan tiga tanda sama dalam pengetahuan javaScript_Basic

WBOY
WBOYasal
2016-05-16 16:43:021393semak imbas

Ringkasnya: == mula-mula tukar jenis dan kemudian bandingkan, === tentukan dahulu jenis, jika ia bukan jenis yang sama, ia akan palsu secara langsung.
=== bermaksud kesaksamaan, kedua-dua belah perbandingan mestilah sama sekali

alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

Mari kita bercakap tentang === ini adalah agak mudah Peraturan perbandingan khusus adalah seperti berikut:

1 Jika jenisnya berbeza, [tidak sama]
2. Jika kedua-duanya adalah nilai berangka dan nilai yang sama, maka [sama]; (!Pengecualian) ialah jika sekurang-kurangnya satu daripadanya ialah NaN, maka [tidak sama]. (Untuk menentukan sama ada nilai ialah NaN, anda hanya boleh menggunakan isNaN() untuk menentukan)
3. Jika kedua-duanya adalah rentetan dan aksara pada setiap kedudukan adalah sama, maka [sama] jika tidak [tidak sama].
4. Jika kedua-dua nilai adalah benar, atau kedua-duanya palsu, maka [sama].
5. Jika kedua-dua nilai merujuk kepada objek atau fungsi yang sama, maka [sama]; jika tidak [tidak sama].
6. Jika kedua-dua nilai adalah nol, atau kedua-duanya tidak ditentukan, maka [sama].

Bagi ==, peraturan perbandingan khusus adalah seperti berikut:

1. Jika kedua-dua jenis nilai adalah sama, lakukan === perbandingan adalah sama seperti di atas
2. Jika dua jenis nilai berbeza, ia mungkin sama. Lakukan penukaran jenis dan perbandingan mengikut peraturan berikut:
a. Jika satu batal dan satu lagi tidak ditentukan, maka [sama].
b. Jika satu rentetan dan satu lagi nilai berangka, tukar rentetan itu kepada nilai berangka dan kemudian bandingkan.
c. Jika mana-mana nilai adalah benar, tukarkannya kepada 1 dan bandingkan jika ada nilai salah, tukarkannya kepada 0 dan bandingkan;
d. Jika satu adalah objek dan satu lagi adalah nilai angka atau rentetan, tukar objek itu kepada nilai jenis asas dan kemudian bandingkan. Objek ditukar kepada jenis asas menggunakan kaedah toString atau valueOf. Kelas terbina dalam teras JS akan mencuba valueOf sebelum toString pengecualian ialah Date, yang menggunakan penukaran toString. Objek teras bukan js, Ling Shuo (lebih menyusahkan, saya kurang faham)
e. Sebarang kombinasi lain (tatasusunan, dsb.) adalah [tidak sama].

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