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 (===) prüft, ob seine beiden Operanden gleich sind und gibt ein boolesches Ergebnis zurück. Im Gegensatz zum Gleichheitsoperator betrachtet der strikte Gleichheitsoperator Operanden unterschiedlicher 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 !==) verwenden die IsStrictlyEqual Semantik.

  • Sind die Operanden unterschiedlichen Typs, wird false zurückgegeben.

  • Sind beide Operanden Objekte, wird true nur dann zurückgegeben, wenn sie auf dasselbe Objekt verweisen.

  • Sind beide Operanden null oder beide undefined, wird true zurückgegeben.

  • Ist einer der Operanden NaN, wird false zurückgegeben.

  • Andernfalls werden die Werte der beiden Operanden verglichen:

    • Zahlen müssen denselben numerischen Wert haben. +0 und -0 werden als gleicher Wert betrachtet.
    • Zeichenketten 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 (==) besteht darin, dass der ==-Operator versucht, die Operanden vor dem Vergleichen in denselben Typ zu konvertieren, wenn sie unterschiedlichen Typs sind.

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 unterschiedlichen Typs

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® 2025 Language Specification
# sec-equality-operators

Browser-Kompatibilität

Siehe auch