← 返回首页
Object.is() - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Object.is()

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.

Die Object.is()-Methode bestimmt, ob zwei Werte der gleiche Wert sind.

In diesem Artikel

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 der gleiche Wert sind.

Beschreibung

Object.is() bestimmt, ob zwei Werte der gleiche Wert sind. Zwei Werte sind dann gleich, wenn eine der folgenden Bedingungen zutrifft:

  • beide undefined
  • beide null
  • beide true oder beide false
  • 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)
  • beide BigInts mit dem gleichen 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 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, das true ist), aber Object.is() wandelt keinen der Werte um.

Object.is() ist auch nicht gleich dem ===-Operator. Der einzige Unterschied zwischen Object.is() und === liegt in ihrer Behandlung von Vorzeichen-Nullen und NaN-Werten. Der ===-Operator (und der ==-Operator) behandelt die Zahlenwerte -0 und +0 als gleich, aber behandelt NaN als nicht gleich zueinander.

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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-object.is

Browser-Kompatibilität

JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.

Siehe auch