Strikte Gleichheit (===)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der strikte Gleichheitsoperator (===) überprüft, ob seine beiden Operanden gleich sind, und gibt ein boolesches Ergebnis zurück. Im Gegensatz zum Gleichheitsoperator betrachtet der strikte Gleichheitsoperator Operanden verschiedener Typen immer als unterschiedlich.

Probieren Sie es aus

console.log(1 === 1);
// Expected output: true

console.log("hello" === "hello");
// Expected output: true

console.log("1" === 1);
// Expected output: false

console.log(0 === false);
// Expected output: false

Syntax

js
x === y

Beschreibung

Die strikten Gleichheitsoperatoren (=== und !==) bieten die IsStrictlyEqual Semantik.

  • Wenn die Operanden unterschiedliche Typen haben, wird false zurückgegeben.
  • Wenn beide Operanden Objekte sind, wird true nur zurückgegeben, wenn sie auf dasselbe Objekt verweisen.
  • Wenn beide Operanden null sind oder beide Operanden undefined sind, wird true zurückgegeben.
  • Wenn ein Operand NaN ist, wird false zurückgegeben.
  • Andernfalls werden die Werte der beiden Operanden verglichen:
    • Zahlen müssen identische numerische Werte haben. +0 und -0 werden als derselbe Wert betrachtet.
    • Zeichenfolgen müssen dieselben Zeichen in derselben Reihenfolge haben.
    • Booleans müssen beide true oder beide false sein.

Der bemerkenswerteste Unterschied zwischen diesem Operator und dem Gleichheitsoperator (==) ist, dass der == Operator versucht, die Operanden vor dem Vergleich in denselben Typ zu konvertieren, wenn sie unterschiedliche Typen haben.

Beispiele

Vergleich von Operanden desselben Typs

js
"hello" === "hello"; // true
"hello" === "hola"; // false

3 === 3; // true
3 === 4; // false

true === true; // true
true === false; // false

null === null; // true

Vergleich von Operanden verschiedener Typen

js
"3" === 3; // false
true === 1; // false
null === undefined; // false
3 === new Number(3); // false

Vergleich von Objekten

js
const object1 = {
  key: "value",
};

const object2 = {
  key: "value",
};

console.log(object1 === object2); // false
console.log(object1 === object1); // true

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-equality-operators

Browser-Kompatibilität

Siehe auch