はい、そうです。これらは実際には内部的にハッシュ テーブルであるため、大きな整数だけでなく、文字列、浮動小数点数、またはその他のオブジェクトも使用できます。すべてのキーtoString()
は、ハッシュに追加される前に文字列に変換されます。これは、いくつかのテスト コードで確認できます。
<script>
var array = [];
array[0] = "zero";
array[new Date().getTime()] = "now";
array[3.14] = "pi";
for (var i in array) {
alert("array["+i+"] = " + array[i] + ", typeof("+i+") == " + typeof(i));
}
</script>
表示:
array[0] = zero, typeof(0) == string
array[1254503972355] = now, typeof(1254503972355) == string
array[3.14] = pi, typeof(3.14) == string
for...in
実際に定義されているインデックスのみを提供する構文の使用方法に注意してください。より一般的なfor (var i = 0; i < array.length; ++i)
スタイルの繰り返しを使用すると、明らかに非標準の配列インデックスで問題が発生します。