--- 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
initializationfor Schleife (d.h. sie sind nicht lokal auf die Schleife begrenzt). Die Initialisierung ist optional.conditionstatement) 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-expressionstatement{ ... }) 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...whilefor...infor...of