Menyingkap Misteri: Mengapa Objek Sifat Yang Sama Gagal Semakan Kesaksamaan
Dalam bidang JavaScript, pengendali kesaksamaan (== dan = ==) kelihatan berkelakuan di luar jangkaan apabila membandingkan objek dengan sifat yang sama. Anomali ini berpunca daripada prinsip asas perbandingan objek dalam JavaScript.
Pertimbangkan kod berikut:
var a = {}; var b = {}; console.log(a == b); // returns false console.log(a === b); // returns false
Menariknya, walaupun objek 'a' dan 'b' mempunyai sifat yang sama, semakan kesaksamaan menghasilkan palsu. Tingkah laku ini kelihatan berlawanan dengan intuisi, kerana seseorang mungkin menjangkakan objek dengan sifat yang sama dianggap sama.
Untuk memahami fenomena ini, adalah penting untuk mengenali perbezaan antara kesamaan biasa (==) dan ketat (===). Walaupun kesamaan yang ketat (===) melumpuhkan penukaran jenis, perbandingan objek dalam kedua-dua kes dinilai kepada benar hanya apabila objek yang sama persis dibandingkan.
Dalam erti kata lain, tanpa mengira jenis pengendali kesaksamaan yang digunakan, prinsipnya tetap sama: objek adalah sama hanya jika mereka merujuk kepada contoh tepat yang sama. Oleh itu, dua objek berbeza dengan sifat yang sama (seperti 'a' dan 'b' dalam contoh kami) tidak akan sama pada pandangan JavaScript.
Jika perlu untuk memastikan kesamaan sifat objek, pertimbangkan untuk mencari pendekatan alternatif, seperti melintasi objek dan membandingkan nilai hartanya satu demi satu.
Atas ialah kandungan terperinci Mengapa Objek JavaScript yang Sama Gagal dalam Pemeriksaan Kesamaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!