Hallo dedlfix,
Rückwärtskompatibilität.
Eine
do
-Expression kannst du einführen, ohne, dass du potentiell das halbe Internet kaputt machst. Wenn du jetzt anfängst, JS funktionaler zu machen und Kontrollstrukturen einen Wert zurück geben lässt, dann brichst du potentiell existierende Codebases.Daran habe ich auch gedacht, kann mir aber nicht vorstellen, welche syntaktisch korrekten Fälle damit kaputtgehen, wenn man eine Syntax à la
var foo = if ...
hinzufügt.
Das hast du nicht gefordert! 😉 du hast gefordert, dass if
/for
/etc Rückgabewerte haben. Und von da ist es nicht mehr weit, dass man versehentlich Werte zurück gibt, die man nicht zurück geben wollte.
Wenn man sich beschränkt auf Zuweisungen, erhöht man wieder die Komplexität der Sprache um einen Sonderfall. Auch nicht wünschenswert.
LG,
CK