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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Strict equality (a === b)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch