Was ist der Unterschied zwischen ==
und ===
in JavaScript? Ich habe auch !=
und !==
Operatoren gesehen. Gibt es noch mehr solcher Operatoren?
Schauen Sie hier nach: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html
Die 3 Gleichheitszeichen bedeuten "Gleichheit ohne Typenzwang". Bei der Verwendung des dreifachen Gleichheitszeichens 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
===
und !==
sind strenge Vergleichsoperatoren:
JavaScript hat sowohl strikte als auch typkonvertierenden Gleichheitsvergleich. Bei "strikter" Gleichheit müssen die verglichenen Objekte Objekte, die verglichen werden, den gleichen Typ haben und:
- Zwei Strings sind strikt gleich, wenn sie die gleiche Folge von Zeichen, die gleiche Länge und die gleichen Zeichen an den entsprechenden Stellen.
- Zwei Zahlen sind strikt gleich, wenn sie numerisch gleich sind (den den gleichen Zahlenwert haben). NaN" ist nicht gleich zu irgendetwas, einschließlich "NaN". Positive und negative Nullen sind gleich einander gleich.
- Zwei boolesche Operanden sind streng gleich, wenn beide wahr oder beide falsch sind. Zwei Objekte sind strikt gleich, wenn sie sich auf dasselbe "Objekt" beziehen.
- Die Typen
Null
undUndefined
sind==
(aber nicht===
). [D.h. (Null==Undefined
) istwahr
, aber (Null===Undefined
) istfalsch
]