block

Eine Blockanweisung (oder in anderen Sprachen Verbundanweisung) wird genutzt, um Anweisungen zu gruppieren. Ein Block wird durch ein Paar geschweifte Klammern abgegrenzt. Optional kann ihm ein Label zugewiesen werden.

Syntax

[label:] {
  anweisung_1;
  anweisung_2;
  ...
  anweisung_n;
}
anweisung1, anweisung2, anweisungN
Anweisungen, die zu einer Blockanweisung gruppiert werden.
label
Ein optionales Label, entweder nur als Kennzeichnung oder als Referenz für die Verwendung in einer break-Anweisung.

Beschreibung

Eine Blockanweisung 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 Blockanweisung nicht mit einem Semikolon endet.

In anderen Sprachen wird eine Blockanweisung 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 Stellen, an denen Anweisungen erwartet werden).

Variablen in Blockgültigkeitsbereichen

Wichtig: Variablen, die mit var deklariert werden, haben keinen Blockgültigkeitsbereich. Sie sind an den Gültigkeitsbereich der umschließenden Funktion oder des Skripts gebunden. Variablen sind folglich auch außerhalb des Blocks verfügbar, in dem sie deklariert wurden. Beispiel:

var x = 1;
{
  var x = 2;
}
console.log(x); // Ausgabe: 2

Die Ausgabe zeigt 2, weil die Anweisungen var x außerhalb des Blocks und innerhalb des Blocks den gleichen Gültigkeitsbereich haben. In anderen Sprachen würde dieser Code 1 ausgeben.

Um die Gültigkeit auf den Block zu begrenzen, muss let eingesetzt werden:

let x = 1;
{
  let x = 2; // dieses x ist nur in diesem Block sichtbar
}
console.log(x); // Ausgabe: 1

Spezifikationen

Spezifikation Status Kommentar
ECMAScript (ECMA-262)
Die Definition von 'Block statement' in dieser Spezifikation.
Lebender Standard
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 Erste Definition. Implementiert in JavaScript 1.0.

Browserkompatibilität

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung InternetNode.js
blockChrome Vollständige Unterstützung 1Edge Vollständige Unterstützung 12Firefox Vollständige Unterstützung 1IE Vollständige Unterstützung 11Opera Vollständige Unterstützung 3Safari Vollständige Unterstützung 1WebView Android Vollständige Unterstützung 1Chrome Android Vollständige Unterstützung 18Firefox Android Vollständige Unterstützung 4Opera Android Vollständige Unterstützung 10.1Safari iOS Vollständige Unterstützung 1Samsung Internet Android Vollständige Unterstützung 1.0nodejs Vollständige Unterstützung 0.1.100

Legende

Vollständige Unterstützung  
Vollständige Unterstützung

Siehe auch