位置(または0)インデックスを使用する場合、値は配列内に配置されることに注意してください。
var array = [];
array[0] = "Foo";
array[1] = "Bar";
これは、インデックス以外の値(0〜9 +ではない)を追加する場合には当てはまりません。
var array = [];
array[0] = "Foo";
array[1] = "Bar";
array[-1] = "Fizzbuzz";
ルールに従ってプレイする場合にのみ、値が配列に配置されます。そうしないと、受け入れられません。ただし、これらはArrayオブジェクト自体で受け入れられます。これは、JavaScriptのほぼすべての場合に当てはまります。["Foo", "Bar"]
配列内の唯一の値ですが、アクセスできます"Fizzbuzz"
。
array[-1];
ただし、「インデックス」が無効であるため、これは配列値の一部ではないことに注意してください。代わりに、別のメンバーとして配列に追加されました。同じ方法で他の配列メンバーにアクセスできます。
array["pop"];
ここではpop
、配列のメソッドにアクセスしていることに注意してください。これにより、ネイティブコードが含まれていることがわかります。「pop」のキーで配列値にアクセスするのではなく、配列オブジェクト自体のメンバーにアクセスします。オブジェクトのパブリックメンバーを循環することで、これをさらに確認できます。
for (var prop in array)
console.log(prop, array[prop]);
これは以下を吐き出します:
0 Foo
1 Bar
-1 Fizzbuzz
繰り返しになりますが、これはオブジェクト上にありますが、配列内にはありません。
素晴らしい質問です!確かにダブルテイクをさせてくれました。