Start · Sprachen · JavaScript · Referenz · if...else

if...else

Anweisung

Die <code>if...else</code>-Anweisung führt eine Anweisung aus, wenn eine Bedingung truthy ist; andernfalls wird optional die <code>else</code>-Klausel ausgeführt.

seit JavaScript ES1 Kategorie: syntax

Signatur

if (condition) statement1 [else statement2]

Beschreibung

Die if...else-Anweisung führt eine Anweisung aus, wenn eine angegebene Bedingung truthy ist. Wenn die Bedingung falsy ist, wird eine andere Anweisung in der optionalen else-Klausel ausgeführt.

Mehrere if...else-Anweisungen können verschachtelt werden, um eine else if-Klausel zu erzeugen. Beachte, dass es in JavaScript kein Schlüsselwort elseif (in einem Wort) gibt.

Die Bedingungen werden der Reihe nach ausgewertet, bis eine zu true ausgewertet wird. An diesem Punkt wird die zugehörige Anweisung ausgeführt und die übrigen else if-Klauseln werden übersprungen.

Um mehrere Anweisungen innerhalb einer Klausel auszuführen, verwende eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren.

Keine Blöcke zu verwenden kann zu verwirrendem Verhalten führen, insbesondere wenn der Code von Hand formatiert wird. Im Fall des sogenannten „dangling else" wird die else-Klausel mit der nächstgelegenen if-Klausel verknüpft. Es ist generell eine gute Praxis, immer Block-Anweisungen zu verwenden, insbesondere bei Code mit verschachtelten if-Anweisungen.

Verwechsle nicht die primitiven Boolean-Werte true und false mit Truthiness oder Falsiness des Boolean-Objekts. Jeder Wert, der nicht false, undefined, null, 0, -0, NaN oder der leere String ("") ist, sowie jedes Objekt, einschließlich eines Boolean-Objekts mit dem Wert false, gilt als truthy, wenn er als Bedingung verwendet wird.

Parameter

Name Typ Default Beschreibung
$condition Pflicht expression Ein Ausdruck, der als truthy oder falsy betrachtet wird.
$statement1 Pflicht statement Anweisung, die ausgeführt wird, wenn condition truthy ist. Kann jede Anweisung sein, einschließlich weiterer verschachtelter if-Anweisungen. Um mehrere Anweisungen auszuführen, verwende eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszuführen, verwende eine leere Anweisung.
$statement2 statement Anweisung, die ausgeführt wird, wenn condition falsy ist und die else-Klausel existiert. Kann jede Anweisung sein, einschließlich Block-Anweisungen und weiterer verschachtelter if-Anweisungen.

Rückgabewert

Typ
void
Beschreibung
Anweisungen geben keinen Wert zurück. Der ausgeführte Block kann jedoch Seiteneffekte erzeugen oder Variablen im umgebenden Scope verändern.

Beispiele

Verwendung von if...else

if (cipherChar === fromChar) {
  result += toChar;
  x++;
} else {
  result += clearChar;
}

Verwendung von else if

if (x > 50) {
  /* do something */
} else if (x > 5) {
  /* do something */
} else {
  /* do something */
}

Eine Zuweisung als Bedingung verwenden

if ((x = y)) {
  // …
}

Klarere Alternative zur Zuweisung als Bedingung

x = y;
if (x) {
  // …
}

Truthy Boolean-Objekt

const b = new Boolean(false);
if (b) {
  console.log("b is truthy"); // "b is truthy"
}

// Wichtig · Fallstricke

Es gibt in JavaScript keine elseif-Syntax (in einem Wort). Verwende stattdessen else if mit Leerzeichen. Verwende zur Vermeidung des dangling else-Problems immer Block-Anweisungen bei verschachtelten if-Anweisungen.