if...else
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Dieif...else
Anweisung führt eine Anweisung aus, wenn eine angegebene Bedingungtruthy ist. Wenn die Bedingungfalsy ist, wird eine andere Anweisung im optionalenelse
-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 clauseif (condition) statement1else statement2
condition
Ein Ausdruck, der als entwedertruthy oderfalsy angesehen wird.
statement1
Anweisung, die ausgeführt wird, wennconditiontruthy ist. Kann jede Anweisung sein, inklusive weiterer verschachtelter
if
-Anweisungen. Um mehrere Anweisungen auszuführen, verwenden Sie eineBlock-Anweisung ({ /* ... */ }
), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszuführen, verwenden Sie eineleere-Anweisung.statement2
Anweisung, die ausgeführt wird, wenn
condition
falsy ist und derelse
-Zweig existiert. Kann jede Anweisung sein, inklusive Block-Anweisungen und weiterer verschachtelterif
-Anweisungen.
Beschreibung
Mehrereif...else
-Anweisungen können verschachtelt werden, um einenelse if
-Zweig zu erstellen. Beachten Sie, dass es in JavaScript keinelseif
(in einem Wort) Schlüsselwort gibt.
if (condition1) statement1else if (condition2) statement2else if (condition3) statement3// …else statementN
Um zu sehen, wie dies funktioniert, würde es bei korrekter Einrückung der Verschachtelung so aussehen:
if (condition1) statement1else 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 voncheckValue(1, 3)
"a is not 1" protokollieren. Dies liegt daran, dass im Fall vondangling else derelse
-Zweig mit dem nächstgelegenenif
-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 verschachtelteif
-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-Wertetrue
undfalse
mit der Truthyness oder Falsyness desBoolean
-Objekts. Jeder Wert, der nichtfalse
,undefined
,null
,0
,-0
,NaN
oder der leere String (""
) ist, und jedes Objekt, einschließlich eines Boolean-Objekts, dessen Wertfalse
ist, wird alstruthy 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 keineelseif
-Syntax in JavaScript gibt. Sie können es jedoch mit einem Leerzeichen zwischenelse
undif
schreiben:
if (x > 50) { /* do something */} else if (x > 5) { /* do something */} else { /* do something */}
Verwendung einer Zuweisung als Bedingung
Sie sollten fast nie einif...else
mit einer Zuweisung wiex = y
als Bedingung haben:
if ((x = y)) { // …}
Denn im Gegensatz zuwhile
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 diewhile
-Dokumentation einen AbschnittVerwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-if-statement |
Browser-Kompatibilität
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.