Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
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.
Ein Ausdruck, der als entweder truthy oder falsy betrachtet wird.
statement1Anweisung, die ausgeführt wird, wenn condition truthy ist. Kann jede Anweisung sein, einschließlich 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.
statement2Anweisung, die ausgeführt wird, wenn condition falsy ist und der else-Zweig existiert. Kann jede Anweisung sein, einschließlich Blockanweisungen und weiteren verschachtelten if-Anweisungen.
Mehrere if...else-Anweisungen können verschachtelt werden, um einen else if-Zweig zu erstellen. Beachten Sie, dass es in JavaScript kein elseif-Schlüsselwort (in einem Wort) gibt.
Um zu sehen, wie dies funktioniert, sieht es bei richtiger Einrückung der Verschachtelung folgendermaßen aus:
Die Bedingungen werden in der Reihenfolge ausgewertet, bis eine Bedingung zu true ausgewertet wird. Zu diesem Zeitpunkt wird die zugehörige Anweisung ausgeführt und die restlichen else if-Zweige werden übersprungen.
Um mehrere Anweisungen innerhalb eines Zweiges auszuführen, verwenden Sie eine Blockanweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren.
Das Nichtverwenden von Blöcken kann zu verwirrendem Verhalten führen, insbesondere wenn der Code manuell formatiert wird. Zum Beispiel:
Dieser Code sieht harmlos aus — jedoch wird beim Ausführen von checkValue(1, 3) "a is not 1" protokolliert. Dies liegt daran, dass im Fall von dangling else der else-Zweig mit der nächsten if-Anweisung verbunden wird. Daher würde der obige Code, bei richtiger Einrückung, folgendermaßen aussehen:
Im Allgemeinen ist es eine gute Praxis, immer Blockanweisungen zu verwenden, insbesondere bei Code mit verschachtelten if-Anweisungen.
Verwechseln Sie nicht die primitiven Booleschen Werte true und false mit der 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 Booleschen Objekts, dessen Wert false ist, wird als truthy betrachtet, wenn es als Bedingung verwendet wird. Zum Beispiel:
Beachten Sie, dass es in JavaScript keine elseif-Syntax gibt. Sie können es jedoch mit einem Leerzeichen zwischen else und if schreiben:
Sie sollten fast nie ein if...else mit einer Zuweisung wie x = y als Bedingung haben:
Denn im Gegensatz zu while-Schleifen wird die Bedingung nur einmal ausgewertet, sodass die Zuweisung nur einmal ausgeführt wird. Der obige Code ist äquivalent zu:
Was viel klarer ist. Sollte es jedoch in seltenen Fällen erforderlich sein, etwas Ähnliches zu tun, enthält die while-Dokumentation einen Abschnitt zu Verwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.
| ECMAScript® 2027 Language Specification # sec-if-statement |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.