for

Die for Anweisung beschreibt eine Schleife mit drei optionalen Ausdr├╝cken und einer oder mehreren Anweisungen.

Syntax

for ([initialization]; [condition]; [final-expression])
   statement
initialization
Ein Ausdruck (inklusive Zuweisungen) oder eine Variablendeklaration. Normalerweise wird ein Schleifenz├Ąhler initialisiert. Neu deklarierte Variablen haben denselben Geltungsbereich wie die for Schleife (d.h. sie sind nicht lokal auf die Schleife begrenzt). Die Initialisierung ist optional.
condition
Die Bedingung wird vor jedem Schleifendurchlauf ausgewertet. Ergibt die Auswertung true, dann wird die Answeisung (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
Dieser Ausdruck wird nach jedem Schleifendurchlauf ausgewertet. Dies findet vor der n├Ąchsten Auswertung der Schleifenbedinung statt. ├ťblicherweise wird der Schleifenz├Ąhler inkrementiert oder dekrementiert.
statement
Der Ausdruck wird ausgef├╝hrt solange die Bedingung erf├╝llt ist (true). Man kann mehrere Anweisungen ausf├╝hren, indem man sie in einer block Anweisung  ({ ... }) zusammenfasst. Eine leere Anweisung (empty statement), markiert durch semikolon, kann auch ausgef├╝hrt werden.

Beispiele

Verwendung der for Schleife

Die 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
}

Optionale for Ausdr├╝cke

Alle 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++;
}

Verwendung von for Schleife mit leerer Anweisung

Das 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;"
Beachte: Die leere Anweisung folgt der Schleife und besteht lediglich aus einem Semikolon.

Spezifikationen

Browserkompatibilit├Ąt

Wir konvertieren die Kompatibilit├Ątsdaten in ein maschinenlesbares JSON Format. Diese Kompatibilit├Ątstabelle liegt noch im alten Format vor, denn die darin enthaltenen Daten wurden noch nicht konvertiert. Finde heraus wie du helfen kannst!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Unterst├╝tzung (Ja) (Ja) (Ja) (Ja) (Ja)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Unterst├╝tzung (Ja) (Ja) (Ja) (Ja) (Ja) (Ja)

Siehe auch