Heim > Web-Frontend > js-Tutorial > JavaScript-Objektgleichheit: Was ist der Unterschied zwischen „==' und „==='?

JavaScript-Objektgleichheit: Was ist der Unterschied zwischen „==' und „==='?

Patricia Arquette
Freigeben: 2024-12-08 07:34:11
Original
427 Leute haben es durchsucht

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

Was ist der Unterschied zwischen regulärer und strikter Objektgleichheit?

In JavaScript wird der Vergleich von Objekten mit der regulären (==) oder strikten (= ==) Gleichheitsoperatoren liefern möglicherweise nicht die erwarteten Ergebnisse. Im Gegensatz zu primitiven Datentypen werden Objekte über ihre Speicheradresse referenziert. Daher ist ein Vergleich allein auf der Grundlage ihrer Werte nicht ausreichend.

Bedenken Sie den folgenden Code:

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

console.log(a == b); // false
console.log(a === b); // false
Nach dem Login kopieren

Obwohl sowohl a als auch b leere Objekte sind, verweisen ihre Referenzen auf unterschiedliche Speicheradressen. Folglich geben sowohl reguläre als auch strikte Gleichheitsbewertungen „falsch“ zurück.

Warum ist das wichtig?

Das Verständnis dieser Nuance ist entscheidend, um genaue Objektvergleiche sicherzustellen. Objekte sollten nur dann als gleich betrachtet werden, wenn sie auf genau dieselbe Speicheradresse verweisen. Durch die Zuweisung eines Objekts zu einer neuen Variablen wird eine neue Referenz erstellt, auch wenn der Inhalt identisch ist.

Nehmen wir zum Beispiel an, wir haben drei Objekte: a, b und c.

a = {}
b = a
c = {}
Nach dem Login kopieren

In diesem Fall a == a, a == b und a != c. Dies liegt daran, dass a und b auf dieselbe Speicheradresse verweisen, während c eine eigene eindeutige Referenz hat.

Fazit

Beim Vergleichen von Objekten ist es wichtig, sich an die Objektgleichheit zu erinnern basiert auf Speicherreferenzen, nicht auf deren Werten. Reguläre und strikte Gleichheitsoperatoren verhalten sich für Objekte gleich und geben nur dann „true“ zurück, wenn die verglichenen Objekte auf dieselbe Speicheradresse verweisen.

Das obige ist der detaillierte Inhalt vonJavaScript-Objektgleichheit: Was ist der Unterschied zwischen „==' und „==='?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage