Perbandingan JavaScript kadangkala boleh menjadi rumit, terutamanya apabila berurusan dengan jenis data yang berbeza seperti null dan undefined. Hari ini, kita akan meneroka cara pengendali perbandingan berfungsi dan nuansa antara == dan === dalam JavaScript.
Mari mulakan dengan beberapa perbandingan asas:
console.log(2 > 1); // true console.log(2 >= 1); // true console.log(2 < 1); // false console.log(2 == 1); // false console.log(2 != 1); // true
Perbandingan ini adalah mudah dan berfungsi seperti yang anda jangkakan. Tetapi perkara menjadi menarik apabila kami memperkenalkan null dan undefined ke dalam campuran.
Mari lihat apa yang berlaku apabila kita membandingkan null dengan nombor:
console.log(null >= 0); // true console.log(null === 0); // false
Berikut ialah perkara yang berlaku:
Operator Perbandingan (>=): Apabila anda menggunakan operator perbandingan seperti >=, JavaScript menukar null kepada 0 sebelum membuat perbandingan. Jadi, null >= 0 menjadi 0 >= 0, yang benar.
Kesaksamaan Tegas (===): Pengendali kesaksamaan yang ketat tidak melakukan penukaran jenis, jadi null === 0 adalah palsu kerana null bukan jenis yang sama dengan 0.
Sekarang, mari lihat kelakuan undefined:
console.log(undefined >= 0); // false console.log(undefined == 0); // false
Perbandingan dengan undefined: Tidak seperti null, undefined tidak akan ditukar kepada 0 semasa perbandingan. Sebaliknya, hasilnya sentiasa palsu kerana undefined dianggap "bukan nombor" dalam konteks ini.
Operator Kesamaan (==): Walaupun menggunakan operator kesamarataan longgar, undefined tidak sama dengan 0. Malah, undefined hanya sama dengan null apabila menggunakan ==.
== (Loose Equality): Operator ini menukarkan operan kepada jenis yang sama sebelum membuat perbandingan. Inilah sebabnya null == 0 adalah palsu, tetapi null == undefined adalah benar.
=== (Kesaksamaan Tegas): Operator ini menyemak kedua-dua nilai dan jenis, tanpa sebarang penukaran. Inilah sebabnya mengapa null === 0 adalah palsu dan null === undefined juga palsu.
Memahami cara JavaScript mengendalikan perbandingan adalah penting untuk mengelakkan tingkah laku yang tidak dijangka dalam kod anda. Sama ada anda membandingkan nombor, berurusan dengan null atau undefined, atau memutuskan antara == dan ===, mengetahui butiran akan membantu anda menulis JavaScript yang lebih boleh diramal dan boleh dipercayai.
Selamat pengekodan dan jumpa lagi pada yang seterusnya!!!
Atas ialah kandungan terperinci Hari xploring Perbandingan JavaScript: Memahami `==`, `===` dan Lagi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!