Tach!
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.
Versteh ich nicht. Wohin zurückgeben? Welche bisher korrekte Syntax könnte denn damit ungewollt Dinge bekommen.
Wenn man sich beschränkt auf Zuweisungen, erhöht man wieder die Komplexität der Sprache um einen Sonderfall. Auch nicht wünschenswert.
Was anderes als Zuweisen oder Parameterübergaben sollte man mit Rückgabewerten wollen? Und was anderes als Zuweisungen oder Parameterübergaben sollte denn betroffen sein, wenn es Rückgabewerte gibt?
Und wie holt sich denn das do
den Wert, wenn ein if
oder das im Eingangsbeispiel gezeigte switch
(weiterhin) nichts zurückgibt? Irgendwie muss doch diese Funktionalität auch in die bestehenden Statements eingebaut werden, oder nicht? Oder sind das dann Kopien der bisherigen Statements, die syntaktisch gleich oder zumindest ähnlich sind, aber intern anders funktionieren?
dedlfix.