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 Operator für strikte Gleichheit (===) überprüft, ob seine beiden Operanden gleich sind, und gibt ein boolesches Ergebnis zurück. Im Gegensatz zum Gleichheitsoperator betrachtet der Operator für strikte Gleichheit Operanden unterschiedlichen Typs immer als verschieden.

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 Operatoren für strikte Gleichheit (=== und !==) verwenden 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 undefined sind, wird true zurückgegeben.

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

  • Andernfalls werden die Werte der beiden Operanden verglichen:

    • Zahlen müssen denselben numerischen Wert haben. +0 und -0 werden als derselbe Wert betrachtet.
    • Zeichenketten müssen dieselben Zeichen in derselben Reihenfolge haben.
    • Booleans müssen entweder beide true oder beide false sein.

Der auffälligste Unterschied zwischen diesem Operator und dem Gleichheitsoperator (==) ist, dass der ==-Operator versucht, die Operanden vor dem Vergleich in den gleichen 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 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

BCD tables only load in the browser

Siehe auch