Hallo dedlfix,
Es braucht also kein separates Sprachkonstrukt der Prozedur, wenn man dasselbe genausogut mit einer etwas erweiterten Funktion erreichen kann. Insofern sehe ich auch keinen Grund dafür, ein do-Element in die Sprache einzufügen, wenn man stattdessen das if (und case und for usw.) so erweitern kann, dass dessen letzter Ausdruck ein Rückgabewert wird.
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. Die do
-Expression ist also ein Kompromiss: mehr funktionales JS, aber trotzdem kein kaputter Code.
LG,
CK