Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Patricia Arquette
Freigeben: 2024-11-04 19:19:02
Original
978 Leute haben es durchsucht

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

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

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

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

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage