Meldung

11.08.2007 - For-in-Statement: Eine Variante der For-Schleife

Die JavaScript For-in-Schleife ist eine Variante der JavaScript For-Schleife und dient ebenfalls der mehrfachen Ausführung von Anweisungsblöcken unter JavaScript. Im Gegensatz zur einfachen For-Variante arbeitet die For-in-Schleife aber auf Basis eines JavaScript-Objekts bzw. geht die Eigenschaftswerte eines Objekts einzeln durch. Damit steht von Anfang an fest, wie oft die Schleife ausgeführt wird – ebenso oft, wie es Eigenschaftswerte im Objekt gibt. Das For-in-Statement bietet – besonders beim Umgang mit Arrays oder im Umgang mit JavaScript-Objekten – den Vorteil, dass weder ein Startwert, noch ein Ausdruck zur Veränderung des Zählers nach jedem Schleifendurchgang angeben werden muss.

Anders als bei der For-Schleife entfällt bei der For-in-Anweisung auch die explizite Angabe einer Abbruchbedingung. Hier liegt auch der entscheidende Unterschied zum For-Statement. Sie wird hier nicht durch einen Ausdruck, der wahr oder falsch sein kann (vgl. If-Anweisung) festgelegt, sondern automatisch durch den Test, ob weitere Elemente im Objekt enthalten sind ersetzt. Das macht den Quelltext übersichtlicher und auch leichter verständlich.

Browser, die JavaScript in der Version 1.7 unterstützen, beherrschen neben den zuvor erwähnten beiden Varianten eine weitere Form der For-Schleife. Die For-Each-Anweisung verhält sich dabei ähnlich, wie die For-In-Variante. Auch hier wird die Anzahl der Schleifendurchgänge durch die Anzahl der Elemente eines JavaScript-Objekts begrenzt. Jedes einzelne im Objekt enthaltene Element wird dabei der genutzten Zählervariablen (siehe auch Variable) zugewiesen.

Zusätzliche Beispiele zu den einzelnen Schleifentypen, welche in JavaScript zur Verfügung stehen, finden Sie unter While-Schleife oder auch Do-While-Schleife. Weitere Informationen zu JavaScript-Sprachelementen werden unter Function, Try...Catch oder Switch vermittelt. Wie bei den anderen Themen finden Sie dort einige Beispiele, welche die Nutzung erleichtern sollen.


Alexander Müller