Logische Operatoren in JavaScript: Jenseits boolescher Ergebnisse
In JavaScript werden logische Operatoren wie „&&“ (AND) und „||“ verwendet ' (OR) geben normalerweise boolesche Ergebnisse zurück. Unter bestimmten Umständen können jedoch auch andere Objekte zurückgegeben werden.
Um zu verstehen, warum, ist es wichtig, das Konzept der Kurzschlussauswertung zu verstehen. Sowohl '&&' als auch '||' sind Kurzschlussoperatoren, d. h. sie hören auf zu werten, sobald das logische Ergebnis bestimmt ist.
Im Ausdruck 'X || Y', 'X' wird zuerst ausgewertet. Wenn festgestellt wird, dass „X“ „wahr“ ist, gibt der Ausdruck „X“ ohne weitere Auswertung zurück. Hier kommt der „Kurzschluss“ ins Spiel. Wenn andererseits „X“ „falsch“ ist, wird „Y“ ausgewertet und der Ausdruck gibt „Y“ zurück.
Ähnlich funktioniert „&&“, indem es das erste „wahre“ Argument oder das zurückgibt letztes „falsches“ Argument.
Der Haken ergibt sich aus dem Umgang von JavaScript mit Wahrhaftigkeit und Falschheit. In JavaScript gelten die folgenden Werte als „falsch“: „false“, „0“, „-0“, „“, „null“, „undefiniert“, „NaN“ und „document.all“.
Wenn daher ein Ausdruck als „falsch“ ausgewertet wird, geben moderne Implementierungen nicht wie in früheren Versionen von JavaScript einen booleschen Wert „falsch“ zurück, sondern den tatsächlich ausgewerteten Ausdruck Ausdruck.
Dieses Verhalten erklärt, warum die in der Frage bereitgestellten Ausdrücke dazu führen, dass Objekte anstelle strenger boolescher Werte zurückgegeben werden. Wenn entweder „obj.fn()“ oder „obj._“ definiert ist, wird das Ergebnis dieses Ausdrucks zurückgegeben, da sie nicht zu den als „falsch“ betrachteten Werten gehören.
Das obige ist der detaillierte Inhalt vonWann geben logische JavaScript-Operatoren Objekte anstelle von Booleschen Werten zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!