Eine Block-Anweisung (oder in anderen Sprachen Verbundanweisung) wird genutzt, um 0 oder mehrere Anweisungen zu gruppieren. Ein Block wird durch ein Paar geschweifte Klammern abgegrenzt.
Syntax
{ anweisung1; anweisung2; ... anweisungN; }
anweisung1
,anweisung2
,anweisungN
- Anweisungen, die zu einer Block-Anweisung gruppiert werden.
Beschreibung
Eine Block-Anweisung wird meistens in Verbindung mit Komtrollfluss-Anweisungen (z. B. if...else
, for
, while
) genutzt. Zum Beispiel:
while (x < 10) { x++; }
Zu beachten ist, dass eine Block-Anweisung nicht mit einem Semikolon endet.
In anderen Sprachen wird eine Block-Anweisung auch oftmals Verbundanweisung genannt. Dieser erlaubt den Einsatz mehrerer Anweisungen an Stellen, an denen JavaScript nur eine Anweisung erwartet. Das Kombinieren von Anweisungen in Blöcken ist in Javascript gängige Praxis. Mit einer empty
-Anweisung ist auch der gegenteilige Fall umsetzbar (keine Anweisung an stellten, an denen Anweisung erwartet wird).
Variablen in Blockgültigkeitsbereichen
Wichtig: Variablen, die mit var
deklariert werden, haben keinen Blockgültigkeitsbereich. Sie sind an dem Gültigkeitsbereich der umschließenden Funktion oder des Skripts gebunden. Das bedeutet, dass diese Variablen auch außerhalb des Blocks verfügbar sind. Aus diesem Grund ist es nicht ratsam Blöcke zu benutzen, um var
-Variablen zu deklarieren, die schon außerhalb des Blocks definiert wurden. Zum Beispiel:
var x = 1; { var x = 2; } console.log(x); // logs 2
Die Ausgabe zeigt 2, weil die Anweisung var x
außerhalb des Blocks und innerhalb des Blocks den gleichen Gültigkeitsbereich haben. In anderen Sprachen würde dieser Code 1 ausgeben.
Wenn ein Blockscope gewünscht ist, muss let
eingesetzt werden.
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Block statement' in dieser Spezifikation. |
Entwurf | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Block statement' in dieser Spezifikation. |
Standard | |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Block statement' in dieser Spezifikation. |
Standard | |
ECMAScript 3rd Edition (ECMA-262) Die Definition von 'Block statement' in dieser Spezifikation. |
Standard | |
ECMAScript 1st Edition (ECMA-262) Die Definition von 'Block statement' in dieser Spezifikation. |
Standard | Initiale Definition. Implementiert in JavaScript 1.0. |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |