Kesamaan Longgar berbanding Ketat
Fahami perbandingan == berbanding ===.
Kesamaan Longgar berbanding Ketat ialah pelajaran Akademi JavaScript percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Akademi JavaScript, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Akademi JavaScript merangkumi sejumlah 4 pelajaran.
Dua Operator Kesamaan
JavaScript mempunyai dua operator kesamaan. Kesamaan ketat membandingkan tanpa penukaran. Kesamaan longgar menukar jenis sebelum membuat perbandingan.
console.log(1 === 1)
console.log(1 == "1")Kesamaan Ketat
Kesamaan ketat mengembalikan benar hanya apabila jenis dan nilai kedua-duanya sepadan. Tiada pemaksaan berlaku.
console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)Kesamaan Longgar Memaksa Penukaran
Kesamaan longgar cuba menukar operan kepada jenis yang sama sebelum membuat perbandingan, dan ini boleh menghasilkan keputusan benar yang mengejutkan.
console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)Nombor dan Rentetan
Apabila nombor dan rentetan dibandingkan dengan kesamaan longgar, rentetan itu ditukar kepada nombor terlebih dahulu.
console.log("10" == 10)
console.log("10" === 10)Pemaksaan Boolean
Dengan kesamaan longgar, nilai benar atau palsu ditukar kepada nombor, jadi benar menjadi 1 dan palsu menjadi 0 sebelum perbandingan.
console.log(true == 1)
console.log(false == 0)
console.log(true == 2)Nilai Kosong dan Tidak Ditakrifkan
Kesamaan longgar menganggap nilai kosong dan nilai tidak ditakrifkan sama antara satu sama lain, tetapi tidak sama dengan nilai lain seperti sifar.
console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)Pengecualian NaN
NaN tidak sama dengan apa-apa pun, termasuk dirinya sendiri, di bawah kedua-dua operator. Gunakan Number.isNaN untuk mengujinya.
console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))Rujukan Objek
Objek dibandingkan berdasarkan rujukan, bukan kandungannya. Dua objek berbeza dengan sifat yang sama tidak pernah dianggap sama.
const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)Keputusan Kesamaan Longgar yang Mengejutkan
Kesamaan longgar boleh menghasilkan keputusan yang tidak seperti dijangka. Rentetan kosong sama dengan sifar, dan tatasusunan kosong sama dengan palsu selepas pemaksaan.
console.log("" == 0)
console.log([] == false)
console.log("0" == false)Utamakan Kesamaan Ketat
Kebanyakan panduan gaya mengesyorkan penggunaan kesamaan ketat secara lalai untuk mengelakkan pepijat pemaksaan tersembunyi. Gunakan kesamaan longgar hanya dengan alasan yang disengajakan.
const value = "42"
if (value === "42") {
console.log("matched as string")
}Menyemak Nilai Kosong atau Tidak Ditakrifkan
Satu penggunaan kesamaan longgar yang diterima ialah menyemak nilai kosong atau tidak ditakrifkan secara serentak, kerana corak kesamaan berganda untuk nilai kosong merangkumi kedua-duanya.
function check(v) {
if (v == null) {
return "missing"
}
return "present"
}
console.log(check(undefined))
console.log(check(0))Semakan Pantas
Uji pengetahuan anda tentang kesamaan.
Ringkasan
Ringkasan: Kesamaan tiga tanda sama dengan mengelakkan pemaksaan; kesamaan dua tanda sama dengan menggunakannya.
- Kesamaan ketat menyemak jenis dan nilai
- Kesamaan longgar menukar kepada jenis yang sama terlebih dahulu
- Nilai kosong hanya sama dengan nilai tidak ditakrifkan secara longgar
- Utamakan kesamaan ketat secara lalai
console.log(1 === 1)
console.log(1 == "1")Pelajari JavaScript dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 59
- Pelajaran
- 200
Soalan Lazim
Adakah pelajaran “Kesamaan Longgar berbanding Ketat” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Akademi JavaScript, termasuk “Kesamaan Longgar berbanding Ketat”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Akademi JavaScript merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Kesamaan Longgar berbanding Ketat”?
Fahami perbandingan == berbanding ===. Anda berlatih Akademi JavaScript menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Akademi JavaScript?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Akademi JavaScript di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Kesamaan Longgar berbanding Ketat” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Akademi JavaScript ini?
Ya. Setiap pelajaran Akademi JavaScript menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Nilai Truthy dan Falsy
- Kesamaan Longgar berbanding Ketat
- Paksaan Tersirat dalam Operasi
- Teknik Penukaran Jelas