--- title: for slug: Web/JavaScript/Reference/Statements/for tags: - Anweisung - JavaScript - Loop - for translation_of: Web/JavaScript/Reference/Statements/for ---
Die for Anweisung beschreibt eine Schleife mit drei optionalen Ausdrücken und einer oder mehreren Anweisungen.
for ([initialization]; [condition]; [final-expression]) statement
initialization
for
Schleife (d.h. sie sind nicht lokal auf die Schleife begrenzt). Die Initialisierung ist optional.condition
statement
) ausgeführt. Die Bedingung ist optional. Bei fehlender Bedingung gilt immer true. Bei false wird die Schleife verlassen (und bei der nächsten Anweisung, die dem Schleifenende folgt, weitergemacht).final-expression
statement
{ ... }
) zusammenfasst. Eine leere Anweisung (empty statement), markiert durch semikolon, kann auch ausgeführt werden.for
SchleifeDie folgende for Anweisung initialisiert die Variable i
mit null. Die Bedingung prüft ob i
kleiner neun ist, führt den Code in der block Anweisung aus und erhöht i
um eins nach jedem Schleifendurchlauf.
for (var i = 0; i < 9; i++) { console.log(i); // more statements }
for
AusdrückeAlle drei for
Ausdrücke sind optional.
Z.B. kann der Initialisierungsblock leer sein:
var i = 0; for (; i < 9; i++) { console.log(i); // more statements }
Die Schleifenbedinung ist auch optional. Man muss jedoch darauf achten, dass in der Schleife eine Austrittsbedingung (break Anweisung) vorkommt, um nicht in eine Endlosschleife zu geraten.
for (var i = 0;; i++) { console.log(i); if (i > 3) break; // more statements }
Das gleiche gilt selbstverständlich wenn man alle drei Blöcke leer lässt. Hier wird i
in der Schleife inkrementiert, um sicherzustellen, dass nach endlich vielen Durchläufen die Schleife abgebrochen wird.
var i = 0; for (;;) { if (i > 3) break; console.log(i); i++; }
for
Schleife mit leerer AnweisungDas folgende Beispiel zeigt eine leere Anweisung im Schleifenkörper. Die Berechnungen finden im Ausdruck [final-expression] statt. Die Schleife wird solange durchlaufen bis die Bedingung nicht mehr erfüllt ist.
function showOffsetPos (sId) { var nLeft = 0, nTop = 0; for (var oItNode = document.getElementById(sId); // initialization oItNode; // condition nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent) // final-expression /* empty statement */ ; console.log("Offset position of \"" + sId + "\" element:\n left: " + nLeft + "px;\n top: " + nTop + "px;"); } // Example call: showOffsetPos("content"); // Output: // "Offset position of "content" element: // left: 0px; // top: 153px;"
Spezifikation | Status | Bemerkung |
---|---|---|
{{SpecName('ES1', '#sec-12.6.2', 'for statement')}} | {{Spec2('ES1')}} | Ursprüngliche Definition. |
{{SpecName('ES3', '#sec-12.6.3', 'for statement')}} | {{Spec2('ES3')}} | |
{{SpecName('ES5.1', '#sec-12.6.3', 'for statement')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-for-statement', 'for statement')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-for-statement', 'for statement')}} | {{Spec2('ESDraft')}} |
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Unterstützung | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Unterstützung | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
do...while
for...in
for...of