molily: document.forms ist undefined

Beitrag lesen

Wird bla[1] gleich behandelt wie bla["1"]?

Ja. array[1] ist auch nur der ganz normale Property Accessor. Alle Eigenschaftsnamen sind letztlich Strings, daher wird beim Property Access immer mit Strings gearbeitet. bla[1] wird intern zu aller erst in bla["1"] umgewandelt.
Das gilt immer, auch für Arrays. Es gibt keine echten Arrays in JavaScript. Arrays sind lediglich Objects mit einer besonderen Bedeutung der numerischen Properties (der Link zu ChrisBs Zitat).

var bla=Array(); bla[0]="abc"; bla["0"] = "def"; alert(bla[0]); alert(bla["0"]);

Um dich ganz zu verwirren: bla["foo"] geht auch. Weil der Array auch nur ein Object ist. Natürlich zählt diese Eigenschaft nicht als Array-Eintrag, erhöht length also nicht.

Mathias