Der Martin: Rekursion vs. Iteration, Mathematische vs. Listen-Operationen

Beitrag lesen

Hallo Don,

Die Amis nennen "||" in JavaScript auch den "default operator", ...
... es bedeutet nicht mehr und nicht weniger als if(a){return a}else{return b}.

also eleganter formuliert eigentlich (a ? a : b), gelle? Das wäre, im Gegensatz zu deiner Umschreibung mit dem if-Statement, dann auch syntaktisch entsprechend, weil es als Ausdruck überall vorkommen darf.

Im Spezialfall mit zwei booelschen Werten a und b enspricht das natürlich dem booleschen oder

Genaugenommen sogar dem Oder mit "short circuit evaluation", bei dem der zweite Operand gar nicht mehr ausgewertet wird, wenn das Ergebnis ohnehin schon feststeht.

Mein Ausdruck a||[])[0] bedeutet die Existenz (true oder false) des ersten Elements [0] im Array a, welches defaultmässig "||" zum leeren Array wird "[]", falls a nicht definiert sein sollte, was nur beim ersten Aufruf der Funktion eintritt. Das finde ich durchaus elegant ausgedrückt, auch wenn es etwas kryptisch aussieht.

Für den Fall, dass a nicht definiert ist, will der Ausdruck also das erste Element eines leeren Arrays zurückgeben - ist das denn definiert? ;-)

So long,
 Martin

--
Finanztipp:
Leihen Sie sich Geld von einem Pessimisten.
Er rechnet sowieso nicht damit, dass er es zurückbekommt.