Heim >Web-Frontend >js-Tutorial >Warum verhält sich „0' in Vergleichen als falsch, in „if'-Anweisungen in JavaScript jedoch als wahr?

Warum verhält sich „0' in Vergleichen als falsch, in „if'-Anweisungen in JavaScript jedoch als wahr?

DDD
DDDOriginal
2024-11-04 22:08:02464Durchsuche

Why Does

Das Paradoxon von JavaScript entwirren: Warum „0“ im Vergleich falsch, in If-Anweisungen jedoch falsch ist

In JavaScript ist das Verhalten des Primitivs „ 0“ stellt Entwickler vor ein Rätsel. Während logische Operatoren wie „==" „0“ mit „falsch“ gleichsetzen, verhält sich „0“ in „Wenn“-Bedingungen als wahr.

Vergleichsparadoxon

Der Code Unten wird das Vergleichsparadoxon veranschaulicht:

<code class="js">"0" == false // true
false == "0" // true</code>

In diesem Szenario zwingt JavaScript „0“ basierend auf seinen „truthy“- und „falsy“-Werten zu „false“. Werte wie „0“, „NaN“, „null“ und undefiniert gelten als falsch, während andere als wahr gelten.

If Statement Anomaly

Allerdings ist die Situation wird rätselhaft, wenn „0“ in einer „Wenn“-Anweisung verwendet wird:

<code class="js">if ("0") console.log("ha") // ha</code>

Obwohl „0“ bei Vergleichen zu „falsch“ gezwungen wird, wird es in „Wenn“-Bedingungen als wahr ausgewertet. Dies liegt daran, dass „if“-Anweisungen in JavaScript alle nicht leeren Zeichenfolgen, einschließlich „0“, als wahr behandeln.

Wahrheitstabellen

Um dieses Verhalten zu verstehen, haben wir kann auf JavaScript-Wahrheitstabellen verweisen. Sie kategorisieren Werte basierend auf ihrem Wahrheits-/Falschstatus im Vergleich (==) und den Bedingungen der „Wenn“-Aussage (Wahrheit):

Value Comparison If Statement
True/Truthy true true
False/Falsy false false
"0" (Falsy) false true

Schlussfolgerung

Das Paradoxon von „0“ in JavaScript ergibt sich aus den unterschiedlichen Interpretationen von Wahrhaftigkeit im Vergleich (==) und „Wenn“-Anweisungen (Wahrheit). Dies ist ein subtiler, aber entscheidender Unterschied, den Entwickler beachten sollten, um unerwartete Ergebnisse zu vermeiden. Als Best Practice empfiehlt es sich, bei Vergleichen strikte Gleichheit (===) zu verwenden, um präzise Auswertungen zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWarum verhält sich „0' in Vergleichen als falsch, in „if'-Anweisungen in JavaScript jedoch als wahr?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn