1. Peran JavaScript "=="
1. Ketika isi == di kedua sisi adalah string, maka bandingkan apakah isi string sama.
2. Ketika konten di kedua sisi == adalah angka, maka bandingkan apakah ukuran angka tersebut sama.
3. Ketika konten di kedua sisi == adalah objek atau atribut fungsi objek, bandingkan apakah alamat memori sama.
2. Perbedaan antara == dan ===
== Digunakan untuk perbandingan umum, === Digunakan untuk perbandingan yang ketat, == Anda dapat mengonversi tipe data selama perbandingan, === Perbandingan yang ketat, dan pengembalian flase selama jenisnya tidak cocok.
Berikan contoh:
<type skrip = "text/javascript"> alert ("/"/"== Hasil yang benar adalah:"+("" == true)); alert ("/"/"=== Hasil yang benar adalah:"+("" == true)); waspada ("/"/"=== Hasil yang benar adalah: "+(" "==)); alert ("/"/" ==== "+(" "==)); alert ("/"/" ==== "+(" "===)); </skrip>"1" == Tipe yang benar berbeda, "==" Konversi tipe akan dilakukan terlebih dahulu, dan benar untuk 1 dikonversi, yaitu, "1" == 1; Pada saat ini, jenisnya masih berbeda, terus melakukan konversi jenis, dan "1" dikonversi, yaitu, 1 == 1; Pada saat ini, "==" Jenis -jenis di kedua sisi kiri dan kanan adalah numerik, yang relatif berhasil!
"1" === Benar Sisi kiri adalah tipe karakter, sisi kanan adalah tipe bool, sisi kiri dan kanan berbeda, hasilnya salah;
"1" === 1 Sisi kiri adalah tipe karakter, sisi kanan adalah tipe numerik int, dan sisi kiri dan kanan berbeda, dan hasilnya salah;
Hasil Menjalankan:
Meringkaskan:
Perbedaan antara == dan ==: "==" Hanya nilai -nilai yang harus sama; "===" Nilai dan tipe harus sama.
Izinkan saya menjelaskan secara rinci perbedaan antara tiga tanda yang sama dan dua tanda yang sama dalam JavaScript.
== Kesetaraan setara, === Identitas adalah kesetaraan.
==, ketika kedua belah pihak memiliki jenis nilai yang berbeda, ketik konversi harus dilakukan terlebih dahulu dan kemudian perbandingan.
==, tidak ada konversi tipe yang dilakukan, berbagai jenis harus berbeda.
Berikut ini dijelaskan secara terpisah:
Mari kita bicara tentang ===, ini relatif sederhana.
Aturan berikut digunakan untuk menentukan apakah dua nilai === sama:
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 ==, sesuai dengan aturan berikut:
1. Jika kedua jenis nilainya sama, buat === Perbandingan.
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,
Lingshuo (saya tidak banyak mengerti)
e. Kombinasi lainnya [tidak setara].
Misalnya:
"1" == Benar
Jika tipe berbeda, true akan pertama -tama akan dikonversi ke nilai 1, dan sekarang menjadi "1" == 1, dan kemudian mengonversi "1" menjadi 1, dan bandingkan 1 == 1, yang sama.
= Operator penugasan
== sama dengan
=== sangat sama dengan
contoh:
var a = 3;
var b = "3";
A == B mengembalikan true
A === B Mengembalikan False
Karena jenis A dan B berbeda
=== Digunakan untuk membuat penilaian perbandingan yang ketat