Java Reference
In-Depth Information
Elementen mit den Indizes 6 bis 9 sind also keine Werte zugewiesen worden. Nun liefert
length allerdings den höchsten numerischen Index des Arrays. Und beim Iterieren über die
nicht initialisierten Array-Elemente erhalten Sie undeined .
Bild 5.13■ Nicht explizit initialisierte Array-Elemente haben den Wert undeined.
HInTErGrunDInFOrMATIOn: Beachten Sie, dass die numerische Indizie-
rung die eigentlichen Hintergründe dieser Situation leicht verschleiert. Wir
haben wie gesagt keine numerische Indizierung vorliegen, sondern nur Werte-
paare mit Textindizes. Es gibt also keine „nichtbelegten“ Elemente in dem Array,
obwohl es so scheint. Es gibt in unserem Beispiel einfach eine Liste mit Schlüs-
sel-Werte-Paaren, deren Textindizes „zufällig“ Zahlen enthalten. Das Problem ist
die Schleife, die über einen numerischen Index läut und dabei eben auch Zah-
len für den Zählindex verwendet, für die es keine String-Repräsentation gibt.
Wenn Sie etwa im Quellcode auf ich[”irgendwas”] zugreifen, ist das die voll-
kommen identische Situation. Das Konzept, bei so einem nicht vorhandenen
Schlüssel undeined zu liefern und damit das Skript in einem deinierten Zu -
stand zu halten, ist einfach und überraschend genial, wenn man sich das
genauer klar macht.
Sollten Sie nun in solch eine Situation kommen, in der Sie mit einer Schleife arbeiten und
die Indizes des Arrays nicht eine lückenlose numerische Reihe darstellen, müssen Sie gege-
benenfalls auf undeined überprüfen, bevor Sie ein Array-Element verwenden. Beachten Sie
die folgende Abwandlung des letzten Beispiels (kap5_18_1.html):
Listing 5.36■ Prüfen auf undeined
...
for ( i = 0; i < ich.length; i++) {
if (ich[i] == undeined) continue;
document.write(ich[i] + " ");
}
</script>
</body>
</html>
 
Search WWH ::




Custom Search