ECMAScript 5 (ES5)
Wie auch schon in der Version 8, gibt es im IE9 einige Verbesserungen und Neuerungen im JavaScript-Umfeld. Die Leistung der JavaScript-Ausführung wurde überarbeitet und es wurden einige Funktionen gemäß dem verabschiedeten ECMAScript-5-Standard umgesetzt. So sind u. a. neue Funktionen in den folgenden Bereichen zu finden:
- Verarbeitung von Arrays
- Erweitertes Objektmodell
- Zahlreiche Verarbeitungsmethoden und -funktionen
Der Umgang mit Arrays gestaltete sich in JavaScript immer etwas umständlich, da eine einfache Iteration mittels foreach-Konstrukt zwar möglich war, aber nicht immer zu dem gewünschten Ergebnis führte (Listing 2). Das Array wochentage enthält alle Wochentage als Klartext. Mittels Schleife sollen die Wochentage ausgegeben werden. Wird die erste Schleife aus Listing 2 ausgeführt, erscheinen aber lediglich die Indexpositionen des Arrays und nicht der Klartext. Um dieses Problem zu umgehen, musste bisher eine Zählschleife verwendet werden, wie es die zweite Schleife aus Listing 2 zeigt. Der ES5- Standard erleichtert nun die Umsetzung solcher typischen Schleifenkonstrukte durch die Einführung der Methode Array.prototype.forEach. Dieser Methode wird eine Funktion übergeben, die dann für jedes Array-Element aufgerufen wird. Der Funktion werden drei Parameter übergeben:
- Der aktuelle Werte aus dem Array
- Die Position innerhalb des Arrays
- Das gesamte Array
Die Verwendung der neuen Methode bietet folgende Vorteile:
- Kürzer und daher weniger Quellcode
- Schleifenlogik und Steuerung muss nicht implementiert werden
- Leere Array-Elemente werden automatisch übersprungen
- Die Verwendung einer Funktion als Schleifenkörper verringert die Vermischung von Schleifenvariablen mit anderen (lokalen) Variablen
Am Ende von Listing 2 wird die Verwendung der Methode praktisch demonstriert. Neben der hier vorgestellten forEach()-Methode existieren noch acht weitere Array-Funktionen. Tabelle 2 gibt einen vollständigen Überblick.
Listing 2
var wochentage = ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']; function IterateArray() { // 1. Schleife for(var tag in wochentage) alert(tag); // 2. Schleife for (i=0;i
Array-Funktion
Funktionsweise
indexOf
Gibt den ersten Index eines gesuchten Werts aus einem Array zurück.
lastIndexOf
Gibt den letzten Index eines gesuchten Werts aus einem Array zurück.
forEach
Ruft für jeden Wert aus dem Array eine definierte Funktion aus.
every
Überprüft, ob eine Bedingung für alle Elemente aus dem Array zutrifft.
some
Überprüft, ob mindestens ein Element aus dem Array einer definierten Bedingung entspricht.
map
Wendet auf alle Elemente des Arrays eine Funktion an und gibt die berechneten Werte in einem neuen Array zurück.
filter
Filtert aus einem Array alle Werte, auf die eine definierte Bedingung zutrifft, und gibt ein neues Array zurück.
reduce
Berechnet aus allen Werten des Arrays einen kumulierten Wert.
reduceRight
Wie reduce jedoch beginnt die Berechnung von dem letzten Array-Element.
Tabelle 2: Überblick über neue Array-Funktionen