Ich bin einfach auf die Tatsache gestoßen, dass eine if
-Anweisung mehrere Parameter in javascript haben kann:
Wie gut wird das unterstützt?
ps. Ich verstehe, dass dies der Verwendung von &&
ähnlich ist, aber das ist interessant und ein google konnte keine Antwort liefern.
Wenn Anweisungen nicht "mehrere Parameter" haben dürfen. Was Sie beobachtet haben, ist die Verwendung des Kommaoperators .
Der Kommaoperator wertet beide Operanden aus (von links nach rechts) und gibt den Wert des zweiten Operanden zurück.
Jetzt sehen wir, warum (true, true, false)
nichts protokolliert, während (true, false, true)
wird. Als Nebenbemerkung wird diese Syntax ubiquitär unterstützt (sollte aber fast nie verwendet werden).
Das ist kein Feature der if
-Anweisung, es ist der Operator ,
.
Sie können Ausdrücke mit einem Komma trennen, und jeder Ausdruck wird ausgewertet, aber nur der letzte wird als Wert für die gesamten Ausdrücke verwendet.
In Ihrem Beispiel ist es ziemlich nutzlos, aber manchmal möchten Sie, dass ein Ausdruck auf seine Nebenwirkungen hin bewertet wird. Beispiel:
%Vor% Es ist nicht ähnlich zu &&
(versuche, false
auf den ersten oder zweiten Platz zu verschieben), es hat nichts mit if
zu tun und wird genauso gut unterstützt wie Funktionsliterale, d. h. absolut universell. Was Sie gefunden haben, ist der von C geerbte Komma-Operator, der die Ausdrücke von links nach rechts ausgewertet hat (eigentlich sind es immer zwei Ausdrücke und mehr konzeptionell zur Verschachtelung wie a + b + c
führt) und verwirft alle außer dem letzten Ergebnis. Das letzte Ergebnis wird zum Ergebnis des gesamten Ausdrucks.
Tags und Links javascript