Beachten Sie, dass bei Verwendung eines Positionsindex (oder 0-Index) Werte innerhalb des Arrays platziert werden:
var array = [];
array[0] = "Foo";
array[1] = "Bar";
// Result: ["Foo", "Bar"]
// Length: 2
Dies ist nicht der Fall, wenn Sie Nicht-Index-Werte hinzufügen (nicht 0-9 +):
var array = [];
array[0] = "Foo";
array[1] = "Bar";
array[-1] = "Fizzbuzz"; // Not a proper array index - kill it
// Result: ["Foo", "Bar"]
// Length: 2
Werte werden nur dann in das Array eingefügt, wenn Sie die Regeln einhalten. Wenn Sie dies nicht tun, werden sie nicht akzeptiert. Sie werden jedoch für das Array-Objekt selbst akzeptiert, was bei fast allem in JavaScript der Fall ist. Obwohl dies ["Foo", "Bar"]die einzigen Werte in unserem Array sind, können wir dennoch auf Folgendes zugreifen "Fizzbuzz":
array[-1]; // "Fizzbuzz"
Beachten Sie jedoch erneut, dass dies nicht Teil der Array-Werte ist, da der "Index" nicht gültig ist. Es wurde stattdessen als weiteres Mitglied zum Array hinzugefügt. Wir könnten auf die gleiche Weise auf andere Array-Mitglieder zugreifen:
array["pop"]; // function pop() { [native code] }
Beachten Sie hier, dass wir auf die popMethode im Array zugreifen , die uns darüber informiert, dass diese systemeigenen Code enthält. Wir greifen nicht mit dem Schlüssel "pop" auf einen der Array-Werte zu, sondern auf ein Mitglied des Array-Objekts. Wir können dies weiter bestätigen, indem wir über die öffentlichen Mitglieder des Objekts fahren:
for (var prop in array)
console.log(prop, array[prop]);
Was Folgendes ausspuckt:
0 Foo
1 Bar
-1 Fizzbuzz
Also noch einmal, es ist auf dem Objekt , aber es ist nicht in dem Array .
Tolle Frage! Hat mich dazu gebracht, sicher ein Double-Take zu machen.