Soweit ich verstehe, Kurzschluss mit dem logischen UND & amp; & amp; Der Operator funktioniert wie folgt:
Angenommen, ich habe die Ausdrücke a
und b
, dann ist a && b
dasselbe wie a ? b : a
seit
Wenn a
truthy ist, wird das Ergebnis b
und sein
Wenn a
falsy ist, wird das Ergebnis a
sein (ohne auch nur b
aufzulösen)
Das ist der Grund, warum der folgende (Demo-) Code einen SyntaxError auslöst:
%Vor%Gibt es eine Möglichkeit, mit einer Return-Anweisung einen Kurzschluss zu erzeugen?
Der Operator &&
binary benötigt beide Teile Ausdrücke .
return something
ist eine Anweisung, aber kein Ausdruck (es erzeugt keinen Wert, da ein Wert nicht nützlich wäre, wenn die Funktion endet).
Verwenden Sie einfach
%Vor%mit dem zusätzlichen Vorteil eines leichter lesbaren Codes.
Lesen Sie mehr:
Nein, return
ist eine Anweisung, Sie können sie nicht als Teil eines AND-Ausdrucks verwenden.
Sie können Ihren Code in eine einzige return
-Anweisung transformieren, wenn Sie das aus irgendeinem Grund benötigen:
ist (mehr oder weniger) äquivalent zu
%Vor% Natürlich sollten Sie in jedem Code, den Sie manuell schreiben und mit Ihren Augen lesen, nur eine if
-Anweisung sowieso.
Tags und Links javascript short-circuiting