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.

Die Object.is() statische Methode ermittelt, ob zwei Werte derselbe Wert sind.

Probieren Sie es aus

console.log(Object.is("1", 1));
// Expected output: false

console.log(Object.is(NaN, NaN));
// Expected output: true

console.log(Object.is(-0, 0));
// Expected output: false

const obj = {};
console.log(Object.is(obj, {}));
// Expected output: false

Syntax

js
Object.is(value1, value2)

Parameter

value1

Der erste zu vergleichende Wert.

value2

Der zweite zu vergleichende Wert.

Rückgabewert

Ein boolescher Wert, der angibt, ob die beiden Argumente derselbe Wert sind oder nicht.

Beschreibung

Object.is() bestimmt, ob zwei Werte derselbe Wert sind. Zwei Werte sind gleich, wenn einer der folgenden Fälle zutrifft:

  • beide undefined

  • beide null

  • beide true oder beide false

  • beide Zeichenfolgen mit gleicher Länge und denselben Zeichen in der gleichen Reihenfolge

  • beide dasselbe Objekt (bedeutet, dass beide Werte auf dasselbe Objekt im Speicher verweisen)

  • beide BigInts mit demselben numerischen Wert

  • beide Symbole, die auf denselben Symbolwert verweisen

  • beide Zahlen und

    • beide +0
    • beide -0
    • beide NaN
    • oder beide ungleich null, nicht NaN und haben denselben Wert

Object.is() ist nicht äquivalent zum == Operator. Der == Operator führt verschiedene Konvertierungen auf beiden Seiten durch (wenn sie nicht vom gleichen Typ sind), bevor er auf Gleichheit testet (was zu einem Verhalten führt wie "" == false, das true ist), aber Object.is() führt keine Konvertierung durch.

Object.is() ist auch nicht äquivalent zum === Operator. Der einzige Unterschied zwischen Object.is() und === liegt in der Behandlung von vorzeichenbehafteten Nullen und NaN Werten. Der === Operator (und der == Operator) behandelt die Zahlenwerte -0 und +0 als gleich, betrachtet jedoch NaN als nicht gleich.

Beispiele

Verwendung von Object.is()

js
// Case 1: Evaluation result is the same as using ===
Object.is(25, 25); // true
Object.is("foo", "foo"); // true
Object.is("foo", "bar"); // false
Object.is(null, null); // true
Object.is(undefined, undefined); // true
Object.is(window, window); // true
Object.is([], []); // false
const foo = { a: 1 };
const bar = { a: 1 };
const sameFoo = foo;
Object.is(foo, foo); // true
Object.is(foo, bar); // false
Object.is(foo, sameFoo); // true

// Case 2: Signed zero
Object.is(0, -0); // false
Object.is(+0, -0); // false
Object.is(-0, -0); // true

// Case 3: NaN
Object.is(NaN, 0 / 0); // true
Object.is(NaN, Number.NaN); // true

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-object.is

Browser-Kompatibilität

Siehe auch