In JavaScript ist keine Zeichenfolge gleich null
.
Vielleicht haben Sie erwartet pass == null
, dass es wahr ist, wenn pass
es sich um eine leere Zeichenfolge handelt, weil Sie wissen, dass der Operator für lose Gleichheit ==
bestimmte Arten von Typenzwang ausführt.
Zum Beispiel ist dieser Ausdruck wahr:
'' == 0
Im Gegensatz dazu ===
sagt der strenge Gleichheitsoperator , dass dies falsch ist:
'' === 0
Wenn man das bedenkt ''
und 0
lose gleich ist, könnte man das vernünftigerweise vermuten ''
und null
ist locker gleich. Dies ist jedoch nicht der Fall.
Dieser Ausdruck ist falsch:
'' == null
Das Ergebnis des Vergleichs einer Zeichenfolge mit null
ist falsch. Daher sind pass == null
alle Ihre anderen Tests immer falsch, und der Benutzer erhält nie die Warnung.
Vergleichen Sie jeden Wert mit der leeren Zeichenfolge, um Ihren Code zu korrigieren:
pass === ''
Wenn Sie sicher sind, dass pass
es sich um eine Zeichenfolge handelt, pass == ''
funktioniert dies auch, da nur eine leere Zeichenfolge der leeren Zeichenfolge entspricht. Auf der anderen Seite sagen einige Experten, dass es eine gute Praxis ist, in JavaScript immer strikte Gleichheit zu verwenden, es sei denn, Sie möchten speziell den Typzwang ausführen, den der Operator für lose Gleichheit ausführt.
Wenn Sie wissen möchten, welche Wertepaare lose gleich sind, lesen Sie die Tabelle "Sameness-Vergleiche" im Mozilla-Artikel zu diesem Thema .