Rumah > hujung hadapan web > tutorial js > Kesamaan Objek JavaScript: Apakah Perbezaan Antara `==` dan `===`?

Kesamaan Objek JavaScript: Apakah Perbezaan Antara `==` dan `===`?

Patricia Arquette
Lepaskan: 2024-12-08 07:34:11
asal
427 orang telah melayarinya

JavaScript Object Equality: What's the Difference Between `==` and `===`?

Apakah Perbezaan Antara Kesamaan Objek Biasa dan Tegas?

Dalam JavaScript, membandingkan objek dengan biasa (==) atau ketat (= ==) pengendali kesaksamaan mungkin tidak membuahkan hasil yang diharapkan. Tidak seperti jenis data primitif, objek dirujuk oleh alamat ingatannya. Oleh itu, perbandingan berdasarkan nilainya sahaja tidak mencukupi.

Pertimbangkan kod berikut:

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

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

Walaupun kedua-dua a dan b adalah objek kosong, rujukannya menghala ke alamat memori yang berbeza. Akibatnya, kedua-dua penilaian kesaksamaan biasa dan ketat mengembalikan palsu.

Mengapa ini Penting?

Memahami nuansa ini adalah penting untuk memastikan perbandingan objek yang tepat. Objek hanya boleh dianggap sama jika ia merujuk alamat memori yang sama. Menugaskan objek kepada pembolehubah baharu menghasilkan rujukan baharu, walaupun kandungannya sama.

Sebagai contoh, katakan kita mempunyai tiga objek: a, b dan c.

a = {}
b = a
c = {}
Salin selepas log masuk

Dalam kes ini, a == a, a == b, dan a != c. Ini kerana a dan b merujuk alamat memori yang sama, manakala c mempunyai rujukan uniknya sendiri.

Kesimpulan

Apabila membandingkan objek, adalah penting untuk mengingati kesamaan objek adalah berdasarkan rujukan ingatan, bukan nilainya. Pengendali kesaksamaan yang tetap dan ketat berkelakuan sama untuk objek, dan mereka hanya kembali benar jika objek yang dibandingkan merujuk alamat memori yang sama.

Atas ialah kandungan terperinci Kesamaan Objek JavaScript: Apakah Perbezaan Antara `==` dan `===`?. 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