if...else
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨Juli 2015â©.
Die if...else Anweisung führt eine Anweisung aus, wenn eine angegebene Bedingung truthy ist. Wenn die Bedingung falsy ist, wird eine andere Anweisung im optionalen else-Zweig ausgeführt.
Probieren Sie es aus
function testNum(a) {
let result;
if (a > 0) {
result = "positive";
} else {
result = "NOT positive";
}
return result;
}
console.log(testNum(-5));
// Expected output: "NOT positive"
Syntax
if (condition)
statement1
// With an else clause
if (condition)
statement1
else
statement2
condition-
Ein Ausdruck, der als entweder truthy oder falsy angesehen wird.
statement1-
Anweisung, die ausgeführt wird, wenn condition truthy ist. Kann jede Anweisung sein, inklusive weiterer verschachtelter
if-Anweisungen. Um mehrere Anweisungen auszuführen, verwenden Sie eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszuführen, verwenden Sie eine leere-Anweisung. statement2-
Anweisung, die ausgeführt wird, wenn
conditionfalsy ist und derelse-Zweig existiert. Kann jede Anweisung sein, inklusive Block-Anweisungen und weiterer verschachtelterif-Anweisungen.
Beschreibung
Mehrere if...else-Anweisungen können verschachtelt werden, um einen else if-Zweig zu erstellen. Beachten Sie, dass es in JavaScript kein elseif (in einem Wort) Schlüsselwort gibt.
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
// â¦
else
statementN
Um zu sehen, wie dies funktioniert, würde es bei korrekter Einrückung der Verschachtelung so aussehen:
if (condition1)
statement1
else
if (condition2)
statement2
else
if (condition3)
statement3
// â¦
Um mehrere Anweisungen innerhalb eines Zweigs auszuführen, verwenden Sie eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren.
if (condition) {
statements1
} else {
statements2
}
Das Nichtverwenden von Blöcken kann zu verwirrendem Verhalten führen, insbesondere wenn der Code manuell formatiert wird. Zum Beispiel:
function checkValue(a, b) {
if (a === 1)
if (b === 2)
console.log("a is 1 and b is 2");
else
console.log("a is not 1");
}
Dieser Code sieht harmlos aus â allerdings wird das Ausführen von checkValue(1, 3) "a is not 1" protokollieren. Dies liegt daran, dass im Fall von dangling else der else-Zweig mit dem nächstgelegenen if-Zweig verbunden wird. Der obige Code würde bei korrekter Einrückung folgendermaÃen aussehen:
function checkValue(a, b) {
if (a === 1)
if (b === 2)
console.log("a is 1 and b is 2");
else
console.log("a is not 1");
}
Im Allgemeinen ist es eine gute Praxis, immer Block-Anweisungen zu verwenden, insbesondere bei Code, der verschachtelte if-Anweisungen enthält.
function checkValue(a, b) {
if (a === 1) {
if (b === 2) {
console.log("a is 1 and b is 2");
}
} else {
console.log("a is not 1");
}
}
Verwechseln Sie nicht die primitiven Boolean-Werte true und false mit der Truthyness oder Falsyness des Boolean-Objekts. Jeder Wert, der nicht false, undefined, null, 0, -0, NaN oder der leere String ("") ist, und jedes Objekt, einschlieÃlich eines Boolean-Objekts, dessen Wert false ist, wird als truthy angesehen, wenn er als Bedingung verwendet wird. Zum Beispiel:
const b = new Boolean(false);
if (b) {
console.log("b is truthy"); // "b is truthy"
}
Beispiele
>Verwendung von if...else
if (cipherChar === fromChar) {
result += toChar;
x++;
} else {
result += clearChar;
}
Verwendung von else if
Beachten Sie, dass es keine elseif-Syntax in JavaScript gibt. Sie können es jedoch mit einem Leerzeichen zwischen else und if schreiben:
if (x > 50) {
/* do something */
} else if (x > 5) {
/* do something */
} else {
/* do something */
}
Verwendung einer Zuweisung als Bedingung
Sie sollten fast nie ein if...else mit einer Zuweisung wie x = y als Bedingung haben:
if ((x = y)) {
// â¦
}
Denn im Gegensatz zu while Schleifen wird die Bedingung nur einmal ausgewertet, sodass die Zuweisung nur einmal durchgeführt wird. Der obige Code ist äquivalent zu:
x = y;
if (x) {
// â¦
}
Was viel klarer ist. In dem seltenen Fall, dass Sie so etwas tun möchten, enthält die while-Dokumentation einen Abschnitt Verwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-if-statement > |