In JavaScript ist keine Zeichenfolge gleich null.
Vielleicht haben Sie erwartet pass == null, dass es wahr ist, wenn passes 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 0lose gleich ist, könnte man das vernünftigerweise vermuten ''und nullist locker gleich. Dies ist jedoch nicht der Fall.
Dieser Ausdruck ist falsch:
'' == null
Das Ergebnis des Vergleichs einer Zeichenfolge mit nullist falsch. Daher sind pass == nullalle 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 passes 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 .