Heim > Web-Frontend > js-Tutorial > Warum erscheint ein leeres Array in JavaScript sowohl wahr als auch falsch?

Warum erscheint ein leeres Array in JavaScript sowohl wahr als auch falsch?

Linda Hamilton
Freigeben: 2024-11-07 16:33:02
Original
551 Leute haben es durchsucht

Why Does an Empty Array Seem Both True and False in JavaScript?

Enthüllung der rätselhaften Natur leerer Arrays in JavaScript

Leere Arrays in JavaScript weisen eine besondere Dualität auf und scheinen gleichzeitig wahr und falsch zu sein. Dieses verwirrende Verhalten ist auf die implizite Konvertierung zurückzuführen, die von Gleichheitsoperatoren durchgeführt wird. Um tiefer in die zugrunde liegenden Mechanismen einzutauchen, schauen wir uns das folgende Code-Snippet an:

<br>var arr = [];<br>console.log('Array:', arr);<br>if (arr) console.log("Es ist wahr!");<br>if (arr == false) console.log("Es ist falsch!");<br>if (arr && arr == false) console .log("...was??");<br>

Die erste if-Anweisung überprüft die Anwesenheit des arr-Objekts (Array ist eine Instanz von Object) und gibt true zurück. Allerdings vergleicht die if-Anweisung mit arr == false den Wert des arr-Objekts mit dem primitiven Wert von false. Um diesen Vergleich durchzuführen, wird arr.toString() implizit aufgerufen und gibt einen leeren String „“ zurück.

Dieses Ergebnis wird durch das Verhalten von Array.join() erklärt. Wenn toString() für ein Array aufgerufen wird, gibt es das verkettete Ergebnis des Aufrufs von join() für dieses Array zurück. Da das Array leer ist, ist das Ergebnis ein leerer String, der in JavaScript in die Kategorie der falschen Werte fällt. Daher wird arr.toString() als falsch ausgewertet, was dazu führt, dass if (arr == false) true zurückgibt.

Der besondere Fall von if (arr && arr == false) unterstreicht die Operation des logischen UND ( &&)-Operator. Damit die gesamte Aussage wahr ist, müssen beide Bedingungen wahrheitsgemäße Werte ergeben. arr allein ist wahr, aber arr == false wird aufgrund der oben genannten impliziten Konvertierung als wahr ausgewertet. Daher wird die Konjunktion als wahr ausgewertet, was zu dem scheinbar widersprüchlichen „Es ist falsch!“ führt. Ausgabe.

Das obige ist der detaillierte Inhalt vonWarum erscheint ein leeres Array in JavaScript sowohl wahr als auch falsch?. 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