Rolf b: Array – Sprachelement und Standardobjekt

Beitrag lesen

Hallo Orlok,

da ich gerade am Basisartikel Objekte und Eigenschaften dran bin, bin ich automatisch auf die Abgrenzung Objekt-Array gestoßen und damit auch wieder auf deinen Array-Artikel. Ich finde ihn grundsätzlich gut, möchte aber ein paar Punkte anmerken.

  1. Indexe Ich habe die Information nicht gesehen, dass ein echter Array-Index ein Integer-Wert ist (Wert 0 bis 2^32-1). Sie gehört IMO in den Prosa-Artikel und auch in den Referenz-Artikel. Zuweisungen an Indexe in diesem Bereich aktualisieren automatisch die length-Eigenschaft (sprich: Schreibe ich einen Wert auf arr[i] und i>=arr.length, wird arr.length=i+1 gesetzt). Verwendet man einen Index, der diesen Zahlenraum verlässt, so wird er Wert zwar geschrieben, erzeugt aber "nur" ein Property von arr, ohne length zu verändern.

  2. Array(n) vs Array(x,y,z) Ein Ugly Part von JavaScript. In der Referenz hast Du es Oma-kompatibel erläutert. Vielleicht sollte man es dort kompakter darstellen und die Oma-Version in den Prosa-Artikel stellen. Und vielleicht mit der Nennung beider Aufrufformen beginnen und betonen, dass die Einparameter-Version unbedingt eine Array-Länge und keine Array-Werte erwartet, weshalb alles, was außerhalb der gültigen Indexwerte liegt, zu einer Fehlermeldung führt. Weiß nicht. Habe es noch nicht zu formulieren versucht.

  3. Assoziative Arrays Den Abschnitt finde ich schwer verständlich. Ich will nicht einfach nach Gutdünken dran rumbasteln - daher hier meine Anregungen:

  • Es müsste klargestellt werden, dass das, was hier als assoziatives Array gezeigt wird, eben kein Array ist, sondern ein allgemeines Objekt.
  • Normale Objekte als Beispiel für assoziative Arrays zu bringen, halte ich für nicht so gut. Damit förderst Du unnötig die Kritik, die im Objekte-Artikel über AAs geäußert wird. AAs sind sinnvoll, wenn die Schlüssel erst zur Laufzeit bekannt werden, also z.B. wenn man ein Dictionary oder eine Lookup-Tabelle braucht.
  1. Literalnotation eines Array of Objects Es ist gut, sowas zu erklären. Aber als Nachklapperer zu AAs geht es unter. Vielleicht verwendest Du es einfach direkt in deinem AA Beispiel und erläuterst kurz, was das tut?

Rolf