自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript > 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.配列の実装
目次 |