Die logischen Operatoren in JavaScript verstehen: Warum sie Objekte zurückgeben können
In JavaScript sind logische Operatoren wie && (und) und || (oder) werden normalerweise zu booleschen Werten (wahr oder falsch) ausgewertet. In bestimmten Szenarien können sie jedoch auch Objekte zurückgeben. Dieses überraschende Verhalten kann Sie zunächst verwirren.
Um dieses Phänomen zu untersuchen, analysieren wir die folgenden Codeausschnitte:
var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {}); var _ = obj && obj._;
Im ersten Beispiel wird obj.fn zunächst ausgewertet. Wenn es definiert ist, wird das Ergebnis des Ausdrucks obj.fn() zurückgegeben. Andernfalls wird der Ausdruck obj._ ausgewertet oder ein neues Objekt erstellt, wenn weder obj.fn noch obj._ vorhanden sind.
Ähnlich wird im zweiten Beispiel zuerst obj ausgewertet. Wenn obj vorhanden ist (als wahr ausgewertet wird), ist das Ergebnis der Wert von obj._. Wenn obj jedoch nicht existiert (als Falsch ausgewertet wird), wird der ursprüngliche obj-Wert selbst zurückgegeben.
Enthüllung des logischen Kurzschlussverhaltens
Dieses Verhalten ist bedingt aus der logischen Kurzschlussnatur von && und ||. Mit anderen Worten: Diese Operatoren versuchen, so schnell wie möglich einen „logischen Wert“ zurückzugeben, um unnötige Auswertungen zu vermeiden, bei denen das Ergebnis bereits klar ist.
Im Fall von ||, wenn der Ausdruck auf der linken Seite zu ausgewertet wird true, es wird sofort zurückgegeben und der rechte Ausdruck wird überhaupt nicht ausgewertet. Wenn umgekehrt der Ausdruck auf der linken Seite „falsch“ ergibt, wird der Ausdruck auf der rechten Seite ausgewertet und zurückgegeben.
Falschheit und Wertrückgabe in JavaScript
Der andere Aspekt, der Welchen Einfluss dieses Verhalten hat, ist die Art und Weise, wie falsche Werte in JavaScript behandelt werden. Zu den falschen Werten in JavaScript gehören false, 0, NaN, leere Zeichenfolgen, null und undefiniert.
Vor Version 1.2 von JavaScript, || gab „false“ zurück, wenn der Ausdruck als „false“ ausgewertet wurde. Ab Version 1.2 wird jedoch der tatsächliche Wert des Ausdrucks zurückgegeben. Das heißt, wenn der linke Ausdruck falsch ist, wird der Wert des rechten Ausdrucks zurückgegeben.
Ähnlich gilt für &&, wenn der linke Ausdruck als wahr ausgewertet wird, der rechte Ausdruck wird ausgewertet und sein Wert zurückgegeben. Wenn der linke Ausdruck jedoch „false“ ergibt, wird in JS 1.0 und 1.1 „false“ zurückgegeben, während ab JS 1.2 der Wert des linken Ausdrucks zurückgegeben wird.
Schlussfolgerung
Das Verständnis des logischen Kurzschlussverhaltens und der Behandlung falscher Werte durch JavaScript ist entscheidend für das Verständnis manchmal überraschende Rückgabewerte logischer Operatoren. Indem Sie erkennen, dass bei diesen Operatoren Effizienz im Vordergrund steht und dass Falschheit in JavaScript unterschiedliche Interpretationen haben kann, können Sie die Komplexität dieser Operatoren sicher bewältigen.
Das obige ist der detaillierte Inhalt vonWie können logische JavaScript-Operatoren Objekte zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!