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 while-Anweisung erzeugt eine Schleife, die eine bestimmte Anweisung ausführt, solange die Prüfbedingung als wahr bewertet wird. Die Bedingung wird vor der Ausführung der Anweisung ausgewertet.
Ein Ausdruck, der vor jedem Durchlauf der Schleife ausgewertet wird. Wenn diese Bedingung als wahr bewertet wird, wird statement ausgeführt. Wenn die Bedingung als falsch bewertet wird, wird die Ausführung mit der Anweisung nach der while-Schleife fortgesetzt.
statementEine Anweisung, die ausgeführt wird, solange die Bedingung als wahr bewertet wird. Sie können eine Blockanweisung verwenden, um mehrere Anweisungen auszuführen.
Wie bei anderen Schleifenanweisungen können Sie Kontrollflussanweisungen innerhalb von statement verwenden:
Die folgende while-Schleife iteriert, solange n kleiner als drei ist.
Bei jeder Iteration erhöht die Schleife n und addiert es zu x. Daher haben x und n die folgenden Werte:
Nach Abschluss des dritten Durchlaufs ist die Bedingung n < 3 nicht mehr wahr, sodass die Schleife beendet wird.
In einigen Fällen kann es sinnvoll sein, eine Zuweisung als Bedingung zu verwenden. Dies geht mit Abstrichen in der Lesbarkeit einher, daher gibt es bestimmte stilistische Empfehlungen, um das Muster für alle offensichtlicher zu machen.
Betrachten Sie das folgende Beispiel, das über die Kommentare eines Dokuments iteriert und sie in der Konsole protokolliert.
Dies ist kein durchgängiges Beispiel für bewährte Praktiken, insbesondere wegen der folgenden Zeile:
Der Effekt dieser Zeile ist in Ordnung — in dem Sinne, dass jedes Mal, wenn ein Kommentarknoten gefunden wird:
...und dann, wenn keine Kommentarknoten mehr im Dokument vorhanden sind:
Das Problem bei dieser Zeile ist: typischerweise verwenden Bedingungen Vergleichsoperatoren wie ===, aber das = in dieser Zeile ist kein Vergleichsoperator — stattdessen ist es ein Zuweisungsoperator. Das = sieht so aus, als wäre es ein Tippfehler für === — obwohl es kein Tippfehler ist.
Daher werden einige Code-Linting-Tools wie die ESLint-Regel no-cond-assign — um Ihnen zu helfen, einen möglichen Tippfehler zu erkennen, damit Sie ihn beheben können — eine Warnung wie die folgende melden:
Anstelle eines bedingten Ausdrucks wurde eine Zuweisung erwartet.
Viele Stilrichtlinien empfehlen, die Absicht für die Bedingung als Zuweisung expliziter anzugeben. Sie können das minimal tun, indem Sie zusätzliche Klammern als Gruppierungsoperator um die Zuweisung setzen:
Tatsächlich wird dieser Stil von der Standardkonfiguration von ESLint no-cond-assign erzwungen, ebenso wie von Prettier, daher werden Sie dieses Muster wahrscheinlich oft in der freien Natur sehen.
Einige Leute empfehlen möglicherweise weiter, einen Vergleichsoperator hinzuzufügen, um die Bedingung in einen expliziten Vergleich zu verwandeln:
Es gibt andere Möglichkeiten, dieses Muster zu schreiben, wie zum Beispiel:
Oder gänzlich auf die Idee verzichten, eine while-Schleife zu verwenden:
Wenn die Leser ausreichend mit dem Muster der Zuweisung als Bedingung vertraut sind, sollten all diese Variationen eine gleichwertige Lesbarkeit aufweisen. Andernfalls ist die letzte Form wahrscheinlich am lesbarsten, wenn auch die ausführlichste.
| ECMAScript® 2027 Language Specification # sec-while-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.