Mögliches Duplikat:
Javascript === vs ==: Ist es wichtig, welchen "gleichen" Operator ich benutze?
Was ist der Unterschied zwischen ==
und ===
in JavaScript? Ich habe auch die Operatoren !=
und !==
gesehen. Gibt es mehr solche Betreiber?
===
und !==
sind strenge Vergleichsoperatoren:
JavaScript bietet sowohl einen strengen als auch einen typkonvertierenden Gleichheitsvergleich. Für
strict
Gleichheit müssen die zu vergleichenden Objekte den gleichen Typ haben und:
- Zwei Zeichenfolgen sind genau gleich, wenn sie an den entsprechenden Positionen dieselbe Zeichenfolge, dieselbe Länge und dieselben Zeichen aufweisen.
- Zwei Zahlen sind genau gleich, wenn sie numerisch gleich sind (denselben Zahlenwert haben).
NaN
ist nicht gleich irgendetwas, einschließlichNaN
. Positive und negative Nullen sind gleich.- Zwei Boolesche Operanden sind genau gleich, wenn beide wahr oder beide falsch sind.
- Zwei Objekte sind genau gleich, wenn sie sich auf dasselbe
Object
beziehen.Null
undUndefined
sind==
(aber nicht===
). [D. h. (Null==Undefined
) isttrue
, aber (Null===Undefined
) istfalse
]
Schauen Sie hier nach: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
Die 3 Gleichheitszeichen bedeuten "Gleichheit ohne Typenzwang". Bei Verwendung von Triple Equals müssen die Werte auch vom Typ her gleich sein.
0 == false // true
0 === false // false, because they are of a different type
1 == "1" // true, automatic type conversion for value only
1 === "1" // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false