donp: Rekursion vs. Iteration, Mathematische vs. Listen-Operationen

Beitrag lesen

... 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.

Exakt, und wirklich elegant formuliert, könnte von mir sein ;)

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?

;-)

In gewisser Weise ja, es ist ein Wert vom Typ 'undefined', was als Schleifenbedingung ein gültiger Ausdruck ist: Die Bedingung ist dann halt nicht erfüllt.
Wenn man nur a[0] schreibt, und a ist bereits vom Typ 'undefined', dann ist a[0] nicht mal mehr das, sondern der ganze Ausdruck ungültig: Es kommt dann zum Laufzeitfehler.

Gruß, Don P