„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum wird „0“ in einer if-Anweisung als „wahr“, in einem Vergleich jedoch als „falsch“ ausgewertet?

Warum wird „0“ in einer if-Anweisung als „wahr“, in einem Vergleich jedoch als „falsch“ ausgewertet?

Veröffentlicht am 07.11.2024
Durchsuche:414

Why Does

Die Macken von JavaScript verstehen: Warum „0“ in if-Anweisungen falsch, aber nicht falsch ist

In JavaScript die Auswertung eines Werts in einem logischen Kontext – wie z if-Anweisungen oder boolesche Vergleiche können zu unerwarteten Ergebnissen führen. Dieses Verhalten ist auf den Typerzwingungsmechanismus von JavaScript zurückzuführen.

JavaScript gibt seine Werte lose ein, und wenn ein Zeichenfolgen- oder Zahlenwert in einem logischen Kontext verwendet wird, unterliegt es einer Typerzwingung, um ihn in einen booleschen Wert umzuwandeln. Bei dieser Konvertierung werden nicht leere Zeichenfolgen und Zahlen ungleich Null als wahr ausgewertet, während leere Zeichenfolgen und Nullzahlen als falsch ausgewertet werden.

Wenn Sie daher „0“ mit „false“ vergleichen, indem Sie == oder === verwenden , gibt es „true“ zurück, da Typerzwingung sowohl „0“ (eine nicht leere Zeichenfolge) als auch „false“ (einen nullähnlichen Wert) in „true“ konvertiert.

Bei Verwendung einer if-Anweisung wird jedoch nur „0“ ausgewertet zu wahr. Dies liegt daran, dass if-Anweisungen intern einen erzwungenen booleschen Wert verwenden, der für nicht leere Zeichenfolgen „true“ zurückgibt.

Um Unklarheiten zu vermeiden, wird empfohlen, beim Vergleich primitiver Werte den strikten Gleichheitsoperator === zu verwenden Es führt einen Vergleich ohne Typzwang durch. Dadurch wird sichergestellt, dass „0“ bei Bedarf korrekt als falsch ausgewertet wird.

Eine prägnante Darstellung des Wahrheits-/Falschverhaltens von JavaScript für verschiedene Datentypen finden Sie in den angehängten Tabellen. Denken Sie daran, für echte Gleichheitsvergleiche immer === zu wählen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3