Heim >Web-Frontend >js-Tutorial >Warum ist „0' gleich „falsch', aber wahr, wenn es mit „if' in JavaScript getestet wird?

Warum ist „0' gleich „falsch', aber wahr, wenn es mit „if' in JavaScript getestet wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 19:19:021036Durchsuche

Why Does

JavaScript-Gleichheitsrätsel: „0“ ist falsch, aber wahr, wenn es mit if getestet wird

Die Gleichheitsoperatoren von JavaScript können zu unerwarteten Ergebnissen führen. wie durch den folgenden Code demonstriert:

console.log("0" == false); // true
console.log(false == "0"); // true

Dieser Code impliziert, dass die Zeichenfolge „0“ dem booleschen Wert „false“ entspricht. Der folgende Code gibt jedoch „ha“ aus, obwohl die Bedingung „0“ ist:

if ("0") console.log("ha"); // ha

Warum passiert das?

Um dieses Verhalten zu verstehen, müssen wir um die wahren und falschen Werte von JavaScript zu verstehen. In JavaScript sind die folgenden Werte falsch:

false
0
""
null
undefined
NaN

Alle anderen Werte sind wahr.

In den ersten beiden Zeilen des Codeausschnitts führt der Gleichheitsoperator (==) eine Typerzwingung durch um die Zeichenfolge „0“ mit dem booleschen Wert „false“ zu vergleichen. Da „0“ ein falscher Wert ist, wird er als gleich falsch betrachtet.

Die if-Anweisung in der dritten Codezeile verwendet jedoch strikte Gleichheit (===), die nur Werte desselben Typs berücksichtigt als gleich. Da „0“ eine Zeichenfolge und „false“ ein Boolescher Wert ist, wird die Bedingung als „falsch“ ausgewertet.

Um Verwirrung zu vermeiden, wird empfohlen, beim Vergleichen von Werten in JavaScript strikte Gleichheit (===) zu verwenden. Der folgende geänderte Code gibt „nichts“ aus:

if ("0" === false) console.log("ha"); // nothing

Wenn Sie den Unterschied zwischen Gleichheit (==) und strikter Gleichheit (===) verstehen, können Sie JavaScript-Code schreiben, der Werte genau vergleicht.

Das obige ist der detaillierte Inhalt vonWarum ist „0' gleich „falsch', aber wahr, wenn es mit „if' in JavaScript getestet wird?. 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