So ermitteln Sie, ob zwei Objekte in es6 gleich sind

青灯夜游
Freigeben: 2022-04-19 15:34:59
Original
3862 Leute haben es durchsucht

In es6 kann die is()-Methode des Object-Objekts verwendet werden, um zu bestimmen, ob zwei Objekte gleich sind. Diese Methode erkennt, ob die Werte zweier Variablen gleich sind, und bestimmt, ob die Referenzadressen der beiden Objekte sind konsistent. Die Syntax „Object. is(Object 1, Object 2)“ gibt einen booleschen Wert zurück. Wenn sie „true“ zurückgibt, bedeutet dies, dass die beiden Objekte gleich sind.

So ermitteln Sie, ob zwei Objekte in es6 gleich sind

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

Zwei Objekte vom Typ Objekt werden beim Vergleich mit == oder === nicht als gleich betrachtet, auch wenn sie dieselben Attribute und Werte haben. Dies liegt daran, dass sie im Gegensatz zu primitiven Typen, die anhand ihres Werts verglichen werden, anhand der Referenz (Speicherort) verglichen werden.

var obj1 = {
    name: "xiaoming",
    sex : "male"
}
 
var obj2 = {
    name: "xiaoming",
    sex : "male"
}
 
console.log(obj1 === obj2); // false
Nach dem Login kopieren

Aber ES6 bietet eine Methode, um zu bestimmen, ob zwei Objekte gleich sind. Diese Methode bestimmt, ob die Referenzadressen der beiden Objekte konsistent sind.

Object.is(a,b)
Nach dem Login kopieren

Die Methode Object.is() bestimmt, ob die beiden Werte gleich sind gleichen Wert. Zwei Werte sind gleich, wenn die folgenden Bedingungen erfüllt sind:

  • sind beide undefiniert

  • sind beide null

  • sind beide wahr oder falsch

  • sind beide Zeichenfolgen gleicher Länge und gleich Zeichen sind in der gleichen Reihenfolge. Ordnen Sie an, dass

  • alle das gleiche Objekt sind (was bedeutet, dass jedes Objekt die gleiche Referenz hat).

  • sind alle Zahlen und

    • sind alle +0.

    • sind alle -0

    • sind alle NaN

    • oder sowohl ungleich Null als auch ungleich NaN und haben den gleichen Wert

Rückgabewert: ein boolescher Typ, der angibt, ob die beiden Parameter den gleichen Wert haben.

Beispiel 1:

let obj1= {
	a: 1
}
let obj2 = {
	a: 1
}
console.log(Object.is(obj1, obj2)) // false
let obj3 = obj1
console.log(Object.is(obj1, obj3)) // true
console.log(Object.is(obj2, obj3)) // fals
Nach dem Login kopieren

So ermitteln Sie, ob zwei Objekte in es6 gleich sind

Beispiel 2:

Object.is('foo', 'foo')  //true
Object.is(window, window)  //true
Object.is([], [])  //false
Object.is(null, null)  //true
Nach dem Login kopieren

Erweiterte Kenntnisse: Die Methode

Object.is() unterscheidet sich von der Operation == (en-US). Der ==-Operator wandelt die Variablen auf beiden Seiten um (sofern sie nicht vom gleichen Typ sind), bevor er die Gleichheit beurteilt (das Ergebnis dieses Verhaltens beurteilt „“ == false als wahr), während Object.is die Variablen nicht umwandelt beide Seiten wert.

Object.is()-Methode und === (en-US)-Operation sind ebenfalls unterschiedlich. Der Operator === (einschließlich des Operators ==) behandelt die Zahlen -0 und +0 als gleich und Number.NaN und NaN als ungleich.

[Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend]

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob zwei Objekte in es6 gleich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
es6
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage