とても”奇妙”なJavaScriptの配列:JavaやCとは違うのだよ

白石俊平(あゆた)
2008-02-07 11:00:00
  • このエントリーをはてなブックマークに追加

前回のまとめと今回のあらすじ

 JavaScriptをより深く知りたい人のための当連載、今回が7回目です。

 前回はJavaScriptの配列に関して基本的なトピックを網羅してみました。今回はいよいよ、JavaScriptの配列の本質に迫ってみたいと思います。

Java/Cとは全く異なる、JavaScriptの配列

 JavaScriptの配列は、JavaやCとは全く違うデータ構造だ。このことは、JavaやCの経験が元々ある人の方が気づきにくいかもしれません(僕がそうでした)。

 では、JavaScriptの配列とは何なのか?

 いきなり答えを言ってしまいましょう。JavaScriptの配列とは、以下のような特徴を持つデータ構造です。

  1. Cのように、値を複数格納できる「連続したメモリ領域」とはまったく違う。配列はJavaScriptオブジェクトであり、つまりハッシュテーブルである
  2. 配列の添え字はハッシュのキーである。JavaScriptオブジェクトのキーには数値も使える事を押さえておこう(連載第3回参照)。
  3. 極めて特殊なlengthプロパティを持つ。lengthプロパティは「インデックス最大値 + 1」を表すプロパティ。
  4. lengthプロパティは読み取りだけでなく書き込みも可能。書き込むと、その大きさまで配列が切り詰められる

 さらにわかりやすいように、配列を一言で説明すると、「非常に変わった性質を持つlengthプロパティを持つが、それ以外は通常のJavaScriptオブジェクトである」と言えます。

 では、次のページでこれらを検証してみましょう。読者の皆さんもぜひ試してみてください。

  • 新着記事
  • 特集
  • ブログ