Die if-Anweisung führt Anweisungen aus, wenn eine bestimmte Bedingung zu true ausgewertet wird. Wird die Bedingung zu false ausgewertet, können andere Anweisungen ausgeführt werden.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
if (bedingung) anweisung1 [else anweisung2]
bedingung- Ein Ausdruck, der zu
trueoderfalseausgewertet wird.
anweisung1- Eine Anweisung, die ausgeführt wird, wenn
bedingungzutrueausgewertet wird. Diese Anweisung kann jede gültige Anweisung sein, auch eine if-Anweisung. Um mehrere Anweisungen auszuführen, muss eineblock-Anweisung ({...}) genutzt werden, um die Anweisungen zu gruppieren. Wenn keine Anweisung ausgeführt werden soll, muss dieempty-Anweisung genutzt werden.
anweisung2- Eine Anweisung, die ausgeführt wird, wenn
bedingungzu false ausgewertet wird und dieelseKlausel existiert. Auch hier können alle Anweisungen, egal obblock-Anweisung ({...}) oder weitere if-Anweisungen genutzt werden.
Beschreibung
Mehrere if...else-Anweisungen können verschachtelt werden, wenn eine else if-Klausel erstellt wird. Zu beachten ist, dass es in JavaScript kein Schlüsselwort elseif (in einem Wort) gibt.
if (bedingung1) anweisung1 else if (bedingung2) anweisung2 else if (bedingung3) anweisung3 ... else anweisungN
Um zu sehen wie das funktioniert, ist es hilfreich, die verschachtelten Anweisungen einzurücken:
if (bedingung1)
anweisung1
else
if (bedingung2)
anweisung2
else
if (bedingung3)
...
Um mehrere Anweisungen in einer Klausel auszuführen, muss eine block-Anweisung genutzt werden. Allgemein ist es immer gute Praxis (best practice) eine block-Anweisung zu nutzen, besonders bei verschachtelten if-Anweisungen.
if (bedingung) {
anweisung1
} else {
anweisung2
}
Man sollte den primitiven boolean-Datentyp nicht mit dem Boolean-Objekt verwechseln. Jeder Wert, der nicht undefined, null, 0, NaN, oder der leere string ("") ist, wird zu true ausgewertet. Dabei ist auch ein Boolean-Objekt mit dem Wert false inbegriffen.
var b = new Boolean(false); if (b) // wird zu true ausgewertet
Beispiele
Einsatz von if...else
if (cipher_char === from_char) {
result = result + to_char;
x++;
} else {
result = result + clear_char;
}
Einsatz von else if
Zu beachten ist, dass in JavaScript kein elseif-Schlüsselwort existiert. Man kann jedoch immer ein Leerzeichen zwischen else und if benutzen.
if (x > 5) {
} else if (x > 50) {
} else {
}
Zuweisungen in der Bedingung
Es ist nicht ratsam einfache Zuweisungen in die Bedingung zu schreiben, weil sie zu Verwechselungen mit dem Gleichheit-Operator führen kann. Zum Beispiel führt folgender Quelltext, der eine Zuweisung enthält immer zu 'true' und sollte daher so nicht benutzt werden:
if (x = y) {
/* tu das richtige */
}
Wenn es nötig ist, eine Zuweisung in einer Bedingungs-Anweisunge zu benutzen, dann sollten Klammern um die Zuweisung gesetzt werden. Der Effekt ist jedoch derselbe, wie im vorangegangenen Code. Zum Beispiel:
if ((x = y)) {
/* tu das richtige */
}
Spezifikationen
Browserkompatibilität
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
if...else | Chrome Vollständige Unterstützung 1 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 1 | IE Vollständige Unterstützung 3 | Opera Vollständige Unterstützung Ja | Safari Vollständige Unterstützung Ja | WebView Android Vollständige Unterstützung 1 | Chrome Android Vollständige Unterstützung 18 | Firefox Android Vollständige Unterstützung 4 | Opera Android Vollständige Unterstützung Ja | Safari iOS Vollständige Unterstützung Ja | Samsung Internet Android Vollständige Unterstützung 1.0 | nodejs Vollständige Unterstützung Ja |
Legende
- Vollständige Unterstützung
- Vollständige Unterstützung