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.
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
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)
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
Beispiel 2:
Object.is('foo', 'foo') //true Object.is(window, window) //true Object.is([], []) //false Object.is(null, null) //true
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!