Blöcke in JavaScript (Blöcke in JavaScript), Lektion, Seite 722636
https://www.purl.org/stefan_ram/pub/bloecke_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Blöcke in JavaScript 

Einführende Beispiele

Das folgende Beispiel-Skript ist ein Block.

main.js
{ console.log( 7 ); console.log( 9 ); } /*
'-------------------------------------' *
Block */
Ausgabe
7
9

In einem Block dürfen mehrere Anweisungen hintereinander geschrieben werden.

Der in dem obenstehenden Programm vorkommende Block enthält zwar zwei  Anweisungen, aber er verbindet beide zu einer einzigen Anweisung  und wird daher auch manchmal Verbundanweisung  genannt. Dies bedeutet, daß ein Block an Stellen in Programm verwendet werden darf, an denen nur eine einzige Anweisung gestattet ist, selbst wenn er seinerseits mehrere Anweisungen enthält.

Syntax

Ein Block ist eine Anweisung.

Ein Block besteht aus einer geschweiften Klammer auf »{«, einer Sequenz, und einer geschweiften Klammer zu »}«.

Block (Syntaxdiagramm)
Anweisung
.-. .-.
---->( { )----.----------------------.---->( } )---->
'-' | | '-'
| .-----------. |
'----| Anweisung |<----'
'-----------'

Semantik

Bei der Auswertung eines Blocks werden die im Block enthaltenen Anweisungen in der Reihenfolge, in der sie dastehen, zeitlich hintereinander ausgewertet. Dabei wird mit der Abarbeitung einer dieser im Block enthaltenen Anweisung erst begonnen, wenn die Abarbeitung der vorigen Anweisung beendet wurde.

Verschachtelte Blöcke

Da ein Block Anweisungen enthalten darf und auch selber eine Anweisung ist, darf ein Block auch einen Block enthalten!

In dem folgenden Skript dient der innerste Block beispielsweise dazu, klarzustellen, auf welche Zeilen sich der Kommentar bezieht.

main.js
{ { /* Ausgabe einiger gerader Zahlen */
console.log( 4 );
console.log( 12 );
console.log( 8 ); }
console.log( 7 );
console.log( 17 );
console.log( 11 );
console.log( 9 ); }
Ausgabe des obenstehenden Blocks
4
12
8
7
17
11
9

Technisch gesehen können die inneren Blockklammern aber auch entfallen. Die Ausgabe des Programms würde sich dadurch nicht ändern.

main.js
{ /* Ausgabe einiger gerader Zahlen */
console.log( 4 );
console.log( 12 );
console.log( 8 );
console.log( 7 );
console.log( 17 );
console.log( 11 );
console.log( 9 ); }
Ausgabe des obenstehenden Blocks
4
12
8
7
17
11
9

Syntax

Ein Ausdruck mit einem folgenden Semikolon ist eine Anweisung.

Ein Block ist ebenfalls eine Anweisung.

Ein Sequenz besteht aus einer Folge von Anweisungen.

»eval« und Blöcke ⃗

Eine Auswertungsanweisung produziert einen Wert, nämlich den Wert, den die Auswertung ihres Ausdrucks ergibt. Der Wert eines eval-Aufrufs ist der bei der Auswertung des Arguments zuletzt produzierte Wert.

Ein leerer Block produziert keinen Wert. Daher ist der Wert von »eval( "2; {}" )« weiterhin der zuletzt produzierte Wert »2«.

Zitat *

Das folgende vereinfachte Zitat läßt es erkennen, daß „Block“ die von ECMAScript  verwendete Bezeichnung ist.

Zitat (vereinfacht) ECMAScript 2016, 13.2 *
Block: { StatementList[opt] }

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722636 stefan_ram:722636 Blöcke in JavaScript Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722636, slrprddef722636, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/bloecke_javascript