var arr = new Array();
arr[5] = "test";
alert(arr.length); // ergibt 6
Dein Argument war doch, du würdest ressourcenschonend programmieren.
Aber ist es resourcenschonend, wenn du hier ein Array mit 6 Elementen anlegst, aber nur das mit der Nummer 5 benutzt?
Noch schlimmer wäre ja dein anderes Beispiel: Der Bereich 50-75 wird benötigt - aber der Bereich 0-49 wird natürlich vom Browser ebenfalls schon angelegt und verbraucht mutmaßlich Speicher.
Da ist es dann doch wirklich schlauer, direkt bei 0 anzufangen.
Weil JavaScript so clever ist und die Elemente zuvor mit dem Autowert undefined füllt!
Das gibts aber sicher nicht umsonst.
Besonders die Stelle:
Über die Array-Eigenschaft length läßt sich die Anzahl der Elemente ermitteln, die im entsprechenden Array Platz finden. Wird lesend auf einen nicht existierenden Index zugegriffen, so liefert JavaScript „undefined”. Beim Schreibenden Zugriff auf einen nicht existierenden Index wird das Array bis zu diesem Index mit leeren Speicherplätzen gefüllt und der entsprechende Wert an der gewünschten Stelle angehängt.
Das deutet alles darauf hin, dass Leerelemente Speicherplatz verbrauchen.
Nun gut, die Speicherverwaltung von Javascript geht den Benutzer nichts an. Kann auch sein, dass Leerelemente 0 Byte extra verbrauchen. In anderen Programmiersprachen ist das aber nicht so.