Rumah > hujung hadapan web > tutorial js > Mengapa Dua Objek JavaScript Kosong Tidak Dibandingkan sebagai Sama?

Mengapa Dua Objek JavaScript Kosong Tidak Dibandingkan sebagai Sama?

Linda Hamilton
Lepaskan: 2024-12-04 01:59:11
asal
858 orang telah melayarinya

Why Do Two Empty JavaScript Objects Not Compare as Equal?

Mengapa Dua Objek Yang Sama Tidak Sama Antara Satu Sama Lain?

Dalam JavaScript, pengendali kesaksamaan (==) dan pengendali kesaksamaan yang ketat (===) digunakan untuk membandingkan nilai. Walau bagaimanapun, apabila membandingkan objek, pengendali ini berkelakuan berbeza daripada yang anda jangkakan.

Pertimbangkan kod berikut:

var a = {};
var b = {};

console.log(a == b); // returns false
console.log(a === b); // returns false
Salin selepas log masuk

Kod ini log palsu untuk kedua-dua ungkapan, walaupun a dan b adalah kedua-duanya objek kosong. Mengapa ini?

Perbezaan utama antara kesamaan biasa (==) dan ketat (===) ialah pengendali kesamaan yang ketat melumpuhkan penukaran jenis. Memandangkan a dan b ialah kedua-dua objek, jenis operator kesamaan tidak penting dalam kes ini.

Tidak kira operator kesamaan yang digunakan, perbandingan objek hanya dinilai benar jika anda membandingkan objek tepat yang sama . Dalam erti kata lain, diberi var a = {}, b = a, c = {};, a == a, a == b, tetapi a != c.

Dua objek berbeza (walaupun mereka mempunyai sifar atau sifat tepat yang sama) tidak akan membandingkan sama. Untuk membandingkan kesamaan sifat dua objek, anda boleh menggunakan kaedah Object.is() atau pendekatan yang digariskan dalam jawapan yang disediakan.

Atas ialah kandungan terperinci Mengapa Dua Objek JavaScript Kosong Tidak Dibandingkan sebagai Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan