Start · Sprachen · JavaScript · Referenz · Leere Anweisung

Leere Anweisung

Anweisung

Eine leere Anweisung (<code>;</code>) stellt bewusst keine Operation dar, wo die JavaScript-Syntax eine Anweisung erwartet.

seit JavaScript ES1 Kategorie: syntax

Signatur

;

Beschreibung

Die leere Anweisung besteht aus einem einzelnen Semikolon (;) und führt keinerlei Operation aus. Sie ist überall dort erlaubt, wo die JavaScript-Grammatik eine Anweisung (Statement) erwartet — zum Beispiel als Schleifenkörper, als einzelner Zweig eines if-Ausdrucks oder als Platzhalter in einem Block.

Typische Einsatzgebiete sind Schleifen, deren gesamte Logik bereits im Schleifenkopf erledigt wird (z. B. in der Bedingung oder im Update-Ausdruck einer for-Schleife), sowie das bewusste Kennzeichnen, dass ein bestimmter Zweig absichtlich leer bleiben soll. Dies macht den Code lesbarer, als wenn der Zweig einfach weggelassen würde.

Wichtig ist, dass eine versehentlich gesetzte leere Anweisung nach einem if-, while- oder for-Ausdruck zu schwer findenden Fehlern führen kann, da der eigentliche Block dann immer ausgeführt wird, unabhängig von der Bedingung. Linter wie ESLint warnen daher standardmäßig vor unbeabsichtigten leeren Anweisungen (no-empty, no-extra-semi).

  • Als Schleifenkörper, wenn alle Operationen im Schleifenkopf stehen.
  • Als expliziter Platzhalter in einem leeren else-Zweig.
  • Zur Dokumentation der bewussten Entscheidung, nichts zu tun.

Rückgabewert

Typ
void
Beschreibung
Eine leere Anweisung gibt keinen Wert zurück und hat keinen Effekt auf den Programmzustand.

Beispiele

Leerer Schleifenkörper — Zeiger bis zum Ende eines Arrays vorspulen

const data = [1, 2, 3, 4, 5];
let i = 0;

// Die gesamte Logik steht im Schleifenkopf;
// der Körper ist bewusst leer.
for (; i < data.length && data[i] !== 4; i++) /* leere Anweisung */ ;

console.log(`Gesuchter Wert gefunden bei Index: ${i}`);
// → Gesuchter Wert gefunden bei Index: 3
Gesuchter Wert gefunden bei Index: 3

Bewusst leerer else-Zweig als Dokumentations-Platzhalter

const featureFlag = false;

if (featureFlag) {
  console.log('Neues Feature aktiv.');
} else ;
// Das explizite Semikolon zeigt: der else-Fall ist
// absichtlich ohne Aktion — kein vergessener Code.

Häufiger Fehler: versehentliche leere Anweisung nach if

const zahl = 42;

// FALSCH: Das Semikolon beendet das if sofort!
// Der console.log wird IMMER ausgeführt.
if (zahl > 100); // ← leere Anweisung — Falle!
  console.log('Diese Zeile läuft immer!'); // kein Teil des if mehr

// RICHTIG:
if (zahl > 100) {
  console.log('Zahl ist groß.');
}
Diese Zeile läuft immer!

// Wichtig · Fallstricke

Fallstrick: Ein versehentliches Semikolon direkt nach if (…), while (…) oder for (…) erzeugt eine leere Anweisung als Schleifen- oder Bedingungskörper. Das nachfolgende { … } wird dann als eigenständiger Block interpretiert und immer ausgeführt — ein klassischer, schwer sichtbarer Logikfehler.

Linter-Empfehlung: ESLint-Regeln wie no-extra-semi und no-empty helfen, unbeabsichtigte leere Anweisungen zu erkennen. Wenn eine leere Anweisung gewollt ist, empfiehlt es sich, sie mit einem Kommentar zu dokumentieren (z. B. /* intentionally empty */), damit der Linter und Mitentwickler den Vorsatz verstehen.

Automatic Semicolon Insertion (ASI): JavaScript fügt in vielen Situationen automatisch Semikolons ein. Die leere Anweisung entsteht dabei jedoch nur, wenn ein Semikolon tatsächlich explizit im Quellcode steht — ASI erzeugt keine leere Anweisung an Stellen, an denen das Semikolon weggelassen wurde.