Die if-Anweisung führt Anweisungen aus, wenn eine bestimmte Bedingung aus wahr (true
) ausgewertet werden kann. Wenn die Bedingung nicht wahr ist (false
), kann eine andere Anweisung ausgeführt werden.
Syntax
if (bedingung) anweisung1 [else anweisung2]
bedingung
- Eine Ausdruck, die zu
true
oderfalse
ausgewertet wird.
anweisung1
- Eine Anweisung, die ausgeführt wird, wenn
bedingung
zutrue
ausgewertet 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
bedingung
zu false ausgewertet wird und dieelse
-Klausel 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 gut (best practice) eine block
-Anweisung zu nutzen, besonders bei verschachtelten if
-Anweisungen.
if (bedingung) { anweisung1 } else { anweisung2 }
Man sollte nicht den primitiven boolean-Datentyp 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.
Zum Beispiel:
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 der Bedingung zu schreiben, weil diese zu Verwechselungen mit der Gleichheit führen kann. Zum Beispiel benutze den folgenden Quelltext nicht:
if (x = y) { /* tu das richtige */ }
Wenn es nötig ist, eine Zuweisung in einer Bedingungs-Anweisunge zu benutzen, dann setzt Klammern um die Zuweisung. Zum Beispiel:
if ((x = y)) { /* tu das richtige */ }
Spezifikationen
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |