es6
Was macht 'Object.is()' in ES6?
Übe dein Wissen
Erklärung
Verständnis der Object.is() Funktion in ES6
Die Object.is() Funktion ist ein integrierter JavaScript-Operator, der in der ECMAScript 6 (ES6) Spezifikation eingeführt wurde. In einfacher Form prüft die Object.is() Methode, ob zwei Werte identisch sind.
Die Implementierung dieser Funktion ist subtiler als der einfache Vergleich ===. Die Methode hält sich sehr eng an die Definition von "Sameness" in JavaScript, die eine Kombination aus loser Typgleichheit und der Verwendung von Special-Case-Regeln für bestimmte Werte umfasst:
- Beide
undefined - Beide
null - Beide
trueoderfalse - Beide Zeichenketten derselben Länge mit den exakt gleichen Zeichen
- Beide genau dieselbe Nummern, einschließlich
+0ist nicht gleich-0undNaNist gleichNaN - Beide das gleiche Objekt
Anwendung von Object.is()
Hier sind ein paar Beispielszenarien, die Object.is() verwenden:
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is(window, window)); // true
console.log(Object.is('foo', 'bar')); // false
console.log(Object.is([], [])); // false
var foo = { a: 1 };
var bar = { a: 1 };
console.log(Object.is(foo, foo)); // true
console.log(Object.is(foo, bar)); // false
console.log(Object.is(null, null)); // true
// Nachfolgende besonderheiten sind falsch mit == und ===
console.log(Object.is(0, -0)); // false
console.log(Object.is(-0, -0)); // true
console.log(Object.is(NaN, 0/0)); // true
Von allen obigen Beispielen prüft Object.is() die Identität von zwei Werten auf eine Weise, die genauer ist als die === Methode, wobei vor allem die Fälle 0 und -0 sowie NaN behandelt werden.
Best Practices und zusätzliche Einblicke
Obwohl Object.is() und === in vielen Alltagsfällen ähnlich reagieren, ist Object.is() besonders nützlich, wenn eine strenge Gleichheit erforderlich ist. Es ist besonders nützlich, wenn Sie mit speziellen JavaScript-Werten wie NaN und -0 arbeiten. Indem Sie diese Funktion verwenden, können Sie übermäßige Fehler oder falsche Identitäten vermeiden, die aus der schlampigen Gleichheit von JavaScript entstehen können.
Es ist wichtig zu beachten, dass ES6 Teil der modernen JavaScript-Sprachversionen ist, daher ist die Object.is() Funktion möglicherweise nicht in älteren Browsern verfügbar, die nur ES5 unterstützen. In solchen Fällen kann ein Polyfill verwendet werden.
Willst du mehr davon? Mach das komplette ES6 Grundlagen-Quiz.
Quiz Starten