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
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 beideundefined
sind, wirdtrue
zurückgegeben. -
Wenn einer der Operanden
NaN
ist, wirdfalse
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 beidefalse
sein.
- Zahlen müssen denselben numerischen Wert haben.
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
"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
"3" === 3; // false
true === 1; // false
null === undefined; // false
3 === new Number(3); // false
Vergleich von Objekten
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 GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Strict equality ( a === b ) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support