Hallo,
Mal etwas ganz anderes: Welchen Sinn haben eigentlich diese Blöcke*? Einen eigenen Scope haben sie ja nicht.
* außerhalb solcher Sachen wiefunction
,if
,for
, etc.
Die sind wirklich sinnvoll, wenn sie bei anderen Statements benutzt werden. Das kommt aus der syntaktischen Definition, die da so lautet:
if ( Expression ) Statement else Statement
Statement kann nun alles mögliche sein, eben auch ein Block. Die Dinger dienen also wirklich nur dazu, die Block-Syntax in if, while, try, for und so zur Verfügung zu stellen, also sozusagen für den Entwickler des Parsers das ganze überschaubarer zu machen. Da es aber definiert ist, kann man es auch an jeglicher Stelle im Quellcode hinsetzen, wo ein Statement erlaubt ist. Die Dinger sind also aus der syntaktischen Definition nach oben geschwappt. Das isses aber auch schon.
Tim