Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.

JavaScript Anwendungen bestehen aus Anweisungen mit bestimmter Syntax. Eine Anweisung kann mehrere Zeilen umfassen und mehrere Anweisungen können in einer einzigen Zeile stehen, wenn sie mittels Semikolon voneinander getrennt sind.

Anweisungen und Deklarationen nach Kategorie

Für eine alphabetische Auflistung, siehe Sidebar auf der linken Seite.

Kontrollfluss

Block
Anweisungsblöcke werden genutzt um ein oder mehrere Anweisungen zu gruppieren. Der Block wird von geschweiften Klammern umfasst.
break
Beendet die aktuelle Schleifen-, Switch-, oder mit Label versehene Anweisung und das Programm wird hinter dieser fortgesetzt.
continue
Beendet den Durchlauf der aktuellen, bzw. der mittels Label angesprochenen Schleife und fährt mit dem nächsten Schleifendurchlauf fort.
Empty
Man verwendet empty anstatt einer echten Anweisung, um keine Anweisung zu geben, an stellen an denen nach JavaScript-Syntax eine erwartet wird.
if...else
Führt eine Anweisung aus wenn eine zuvor festgelegte Bedingung erfüllt (als true gewertet) wird. Ist die Bedingung false, kann eine andere Anweisung ausgeführt werden.
switch
Nach Auswertung eines Ausdrucks, wird anhand des Ergebnisses eine Fallunterscheidung durchgeführt und die entsprechende durch ein case-Label markierte Anweisung ausgeführt.
throw
Leitet das Auswerfen eines Fehlerausdrucks ein.
try...catch
Ein Anweisungsblock wird "ausprobiert" (try) und ein eventuell auftretender Fehler abgefangen (catch) und gegebenenfalls behandelt.

Deklarationen

var
Deklariert eine Variable und initialisiert sie optional mit einem Wert.
let
Deklariert eine Blocklokale variable und initialisiert sie optional mit einem Wert.
const
Deklariert eine Konstante auf welche nur lesend zugegriffen werden kann.

Funktionen und Klassen

function
Deklariert eine Funktion mit festgelegten Parametern.
function*
Erzeugt Funktionen mit denen  Schleifen leichter zu schreiben sind.
async function
Deklariert eine asynchrone Funktion mit festgelegten Parametern.
return
Legt den Rückgabewert einer Funktion fest.
class
Deklariert eine Klasse.

Schleifen

do...while
Eine Schleife die solange ausgeführt wird bis die Bedingung false ist. Die Bedingung wird erst am ende eines Durchgangs überprüft.
for
Erstellt eine aus drei unerforderlichen, zwischen Parenthesen geklammerten, durch Semikola getrennten Ausdrücken bestehende Schleife, gefolgt von einem Anweisungsblock innerhalb der Schleife.
for_each...in
Iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
for...in
Stellt die aufzählbaren Eigenschaften eines Objektes in einer unbestimmten Reihenfolge zur Verfügung. Jede Eigenschaft kann durch Anweisungen in der Schleife ausgewertet werden.
 
for...of
Iterates over iterable objects (including arrays, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
while
Erstellt eine Schleife, die solange durchlaufen wird, wie die Schleifenbedingung wahr ist. Die Schleifenbedingung wird am Anfang der Schleife (vor dem ersten Durchlauf des inneren Befehlsblocks) ausgewertet.

Weiteres

debugger
Ruft irgendwelches verfügbare Fehlerentdeckungsvermögen auf. Steht keines zur Verfügung, hat dieser Befehl keine Wirkung.
export
Stellt eine Funktion zur Anwendung in anderen Modulen bereit. Dieser Ausdruck wird in dem Quellenmodul verwendet. Steht in Zusammenhang mit import auf der anderen Seite des Wechsels.
import
Importiert eine aus einem anderen Modul stammende Funktion, oder den gesamten Modul. Dieser Ausdruck wird in dem Entleihermodul verwendet, und arbeitet in Zusammenhang mit export.
label
Hängt ein Etikett an eine Anweisung an. Auf dieses Etikett können  break (aussteigen) oder continue (fortsetzen) hinweisen, um den Kontrollfluss mit einer schärferen Genauigkeit zu steuern.
with
Extends the scope chain for a statement.

Specifications

Specification Status Comment
ECMAScript 1st Edition (ECMA-262)
Die Definition von 'Statements' in dieser Spezifikation.
Standard Initial Definition
ECMAScript 3rd Edition (ECMA-262)
Die Definition von 'Statements' in dieser Spezifikation.
Standard  
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Statements' in dieser Spezifikation.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'ECMAScript Language: Statements and Declarations' in dieser Spezifikation.
Standard Neu: function*, let, for...of, yield, class
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'ECMAScript Language: Statements and Declarations' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

FunktionChromeEdgeFirefoxInternet ExplorerOperaSafari
Legacy generator function Nein Nein2 — 58 Nein Nein Nein
async function55 Ja52 Nein4210.1
block Ja Ja1 Ja Ja Ja
break Ja Ja1 Ja Ja Ja
class42 Ja45 Nein ?10.1
const21 Ja362 311 Ja5.1
continue Ja Ja1 Ja Ja Ja
debugger Ja Ja1 Ja Ja Ja
do...while Ja Ja16 Ja Ja
Empty statement (;) Ja Ja1 Ja Ja Ja
export61

16

154

60

54 — 605

Nein4710.1
for Ja Ja1 Ja Ja Ja
for each...in Nein Nein1.5 — 57 Nein Nein Nein
for...in Ja Ja16 Ja Ja
for...of3812136 Nein258
function Ja Ja1 Ja Ja Ja
function*391326 Nein2610
if...else Ja Ja1 Ja Ja Ja
import61

16

154

60

54 — 605

Nein4710.1
import.meta64 ?62 Nein51 ?
label Ja Ja1 Ja Ja Ja
let

49

48 — 4911 12

41 — 4910

124413 14 15111710
return Ja Ja1 Ja Ja Ja
switch Ja Ja1 Ja Ja Ja
throw Ja Ja1 Ja Ja Ja
try...catch Ja Ja16 Ja Ja
var Ja Ja1 Ja Ja Ja
while Ja Ja1 Ja Ja Ja
with Ja Ja1 Ja Ja Ja
FunktionAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Legacy generator function Nein Nein Nein4 — 58 Nein Nein Nein
async function Ja55 Ja524210.16.0
block Ja Ja Ja4 Ja Ja Ja
break Ja Ja Ja4 Ja Ja Ja
class4242 Ja45 ?10.14.0
const Ja Ja Ja362 3 Ja Ja Ja
continue Ja Ja Ja4 Ja Ja Ja
debugger Ja Ja Ja4 Ja Ja Ja
do...while Ja Ja Ja4 Ja Ja Ja
Empty statement (;) Ja Ja Ja4 Ja Ja Ja
export Nein61 Ja

60

54 — 605

4710.1 Nein
for Ja Ja Ja4 Ja Ja Ja
for each...in Nein Nein Nein4 — 57 Nein Nein Nein
for...in Ja Ja Ja4 Ja Ja Ja
for...of5.1 Ja12146258 Ja
function Ja Ja Ja4 Ja Ja Ja
function* Ja39 Ja26 Ja104.0
if...else Ja Ja Ja4 Ja Ja Ja
import Nein61 Ja

60

54 — 605

4710.1 Nein
import.meta6464 ?6251 ? Nein
label Ja Ja Ja4 Ja Ja Ja
let

49

41 — 4910

49

48 — 4911 12

41 — 4910

124413 14 1517104.0
return Ja Ja Ja4 Ja Ja Ja
switch Ja Ja Ja4 Ja Ja Ja
throw Ja Ja Ja4 Ja Ja Ja
try...catch Ja Ja Ja4 Ja Ja Ja
var Ja Ja Ja4 Ja Ja Ja
while Ja Ja Ja4 Ja Ja Ja
with Ja Ja Ja4 Ja Ja Ja

1. From version 7.0.0: this feature is behind the --harmony runtime flag.

2. Prior to Firefox 13, const is implemented, but re-assignment is not failing.

3. Prior to Firefox 46, a TypeError was thrown on redeclaration instead of a SyntaxError.

4. From version 15: this feature is behind the Experimental JavaScript Features preference.

5. From version 54 until version 60 (exclusive): this feature is behind the dom.moduleScripts.enabled preference. To change preferences in Firefox, visit about:config.

6. Prior to Firefox 51, using the for...of loop construct with the const keyword threw a SyntaxError ("missing = in const declaration").

7. From version 0.12: this feature is behind the --harmony runtime flag.

8. files must have suffix .mjs, not .js

9. From version 8.5.0: this feature is behind the --experimental-modules runtime flag.

10. Strict mode is required.

11. Support outside of strict mode.

12. From version 48 until version 49 (exclusive): this feature is behind the Enable Experimental JavaScript Features preference. To change preferences in Chrome, visit chrome://flags.

13. Prior to Firefox 44, let is only available to code blocks in HTML wrapped in a <script type="application/javascript;version=1.7"> block (or higher version) and has different semantics (e.g. no temporal dead zone).

14. Prior to Firefox 46, a TypeError is thrown on redeclaration instead of a SyntaxError.

15. Firefox 54 adds support of let in workers.

See also

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: Galajda, schlagi123, JorisGutjahr, fscholz, SphinxKnight, timbernasley
Zuletzt aktualisiert von: Galajda,