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
Freigeben: 2024-11-04 22:08:02
Original
458 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage