自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript > 6.配列の実装
これまでオブジェクトに関連して配列と連想配列の説明をしてきました。前者は整数をインデックスとするもので、後者は文字列をインデックスとするものです。それでは、両者はどのような関係にあるのか、ここで考えてみることにしましょう。
実は、この二つは実体としては同じものです。それを確かめるために、以下のJavaScriptプログラムをご覧ください。
var a = new Array(); a[5] = "[5]"; document.writeln("a[5] = ", a[5]); // 配列としてアクセス:整数インデックス document.writeln("a[\"5\"] = ", a["5"]); // 連想配列としてアクセス:文字列インデックス 実行結果:
このように、整数インデックスでアクセスしても、文字列インデックスとしてアクセスしても、同一の値を返すことが分かります。実は、JavaScriptでは、通常の配列も連想配列として実装されているのです。
つまりこういうことです。JavaScriptには連想配列があり、添え字としては文字列が要求されます。一方、添え字として整数が用いられた場合は、暗黙に(自動的に)整数から文字列への変換が行われるのです。これにより、一般の(添え字が整数の)配列が使えるように見せかけているのです。
しかし、そうなると次のような興味が湧いてきます。JavaScript言語は「整数型」というものは持っておらず、数値はすべて浮動小数点数(実数)により記憶・計算されます。それでは、配列の添え字として小数は利用できないでしょうか?次節では、このテーマを検討してみることにします。
![]() |
目次 |