自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript > 5.インデックスの範囲

5.インデックスの範囲

 前節では、Arrayクラスを利用することにより、配列の要素数を明示できることを説明しました。では、明示した要素数を超えて配列にアクセスしたら、どうなるのでしょうか?他の言語、例えばC言語の場合は不正なメモリをアクセスしたというエラーになったり、別のオブジェクトの値を破壊したりします。Basic言語の場合は、ランタイム・エラーになります。JavaScriptではどうでしょうか?
 ともかく、やってみることにしましょう。

var a = new Array(5);   // 要素数5の配列を作成(インデックスは 0~4)
a[3] = 1;               // 超えていない
a[10] = 10;             // 超えている
document.writeln("a[3] = ", a[3]);
document.writeln("a[10] = ", a[10]);
実行結果:

 実行結果の示すとおり、あらかじめ指定した要素数を超えて配列にアクセスしても、別にエラーにはなりません。
 つまり、配列を作るときに要素数を指定するのは、プログラムの動作だけ考えれば実は無意味なことです。
 それにも関わらず、要素数が予め分かっていれば指定したほうがいいと思いますが、それはあくまでもプログラムが見やすくなるという理由からです。

6.配列の実装

目次