Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Object.is()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
DieObject.is()-Methode bestimmt, ob zwei Werteder gleiche Wert sind.
In diesem Artikel
Probieren Sie es aus
console.log(Object.is("1", 1));// Expected output: falseconsole.log(Object.is(NaN, NaN));// Expected output: trueconsole.log(Object.is(-0, 0));// Expected output: falseconst obj = {};console.log(Object.is(obj, {}));// Expected output: falseSyntax
Object.is(value1, value2)Parameter
Rückgabewert
Ein boolescher Wert, der angibt, ob die beiden Argumente der gleiche Wert sind.
Beschreibung
Object.is() bestimmt, ob zwei Werteder gleiche Wert sind. Zwei Werte sind dann gleich, wenn eine der folgenden Bedingungen zutrifft:
- beide
undefined - beide
null - beide
trueoder beidefalse - beide Zeichenketten mit der gleichen Länge und denselben Zeichen in der gleichen Reihenfolge
- beide dasselbe Objekt (bedeutet, beide Werte referenzieren dasselbe Objekt im Speicher)
- beideBigInts mit dem gleichen numerischen Wert
- beideSymbole, die auf denselben Symbolwert verweisen
- beide Zahlen und
Object.is() ist nicht gleich dem==-Operator. Der==-Operator wendet verschiedene Umwandlungen auf beide Seiten an (wenn sie nicht denselben Typ haben), bevor er auf Gleichheit prüft (was zu einem Verhalten wie"" == false führt, dastrue ist), aberObject.is() wandelt keinen der Werte um.
Object.is() ist auchnicht gleich dem===-Operator. Der einzige Unterschied zwischenObject.is() und=== liegt in ihrer Behandlung von Vorzeichen-Nullen undNaN-Werten. Der===-Operator (und der==-Operator) behandelt die Zahlenwerte-0 und+0 als gleich, aber behandeltNaN als nicht gleich zueinander.
Beispiele
>Verwendung von Object.is()
// Case 1: Evaluation result is the same as using ===Object.is(25, 25); // trueObject.is("foo", "foo"); // trueObject.is("foo", "bar"); // falseObject.is(null, null); // trueObject.is(undefined, undefined); // trueObject.is(window, window); // trueObject.is([], []); // falseconst foo = { a: 1 };const bar = { a: 1 };const sameFoo = foo;Object.is(foo, foo); // trueObject.is(foo, bar); // falseObject.is(foo, sameFoo); // true// Case 2: Signed zeroObject.is(0, -0); // falseObject.is(+0, -0); // falseObject.is(-0, -0); // true// Case 3: NaNObject.is(NaN, 0 / 0); // trueObject.is(NaN, Number.NaN); // trueSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.is> |