JavaScriptの配列をも〜っと深く理解する:lengthの不思議な動作
白石俊平(あゆた)
2008/02/08 11:00
不思議な挙動をするlengthプロパティを極めて、JavaScriptの配列を卒業するとしよう。
前回のまとめと今回のあらすじ
JavaScriptをより深く知りたい人のための当連載、今回が八回目です。
これまで2回にわたって、JavaScriptの配列についてお話ししてきました。今回は、JavaScriptの配列に関する最後の記事として、普段皆さんが使用している「配列.length」は、実はとても奇妙なプロパティであると言うことをお話ししたいと思います。
lengthプロパティの不思議な動作
前回の記事で、JavaScriptの配列は、単にJavaScriptオブジェクトが持つハッシュテーブル的な機能を利用しているだけだ、と言うことを説明しました。
では、配列とJavaScriptオブジェクトは全く同じなのでしょうか?
結論から言うと、そうではありません。違う点と言えば、配列専用のメソッドをたくさん持っているという点がまず挙げられます。しかしそれは本質的な答えではありません。配列を配列たらしめている要因は、皆さんも間違いなく使ったことがあるであろうlengthプロパティなのです。
lengthプロパティが示す値とは?
lengthプロパティは非常に特殊な動作をします。その1つが「自動的に変化する」という点です。以下のコードを見てください。
var a = [5, 10]; alert(a.length); // → 2が表示される a.push(15); alert(a.length); // → 3が表示される
何も不思議なことはありませんね。lengthプロパティは配列の要素数を表すのですから。
しかし、現在、要素数が3である配列aに対して以下のような処理を行ったらどうなるか、お分かりでしょうか?
a[1000] = 500; alert(a.length); // 何が表示される?
- 特集: JavaScriptのイロハ (19件)
- ホワイトペーパー
- 話題のタグ
開発環境
Off Topic
小技
インストール
Firefox 3
Google
Windows XP
HTML
CSS
Firefox
Webデザイン
Mozilla
Linux
仮想化
UI
JavaScript
マイクロソフト
ブラウザ
Flash
Windows Vista
iPhone
Windows
PHP
Mac OS X
iPod touch
リファレンス
Opera
OS
Webサービス
iPhone 3G
脆弱性
Database
Apple
Windows 7
Safari
プログラミング言語
WebKit
アプリケーション
データベース
モバイル
Java
オープンソース
Ajax
Internet Explorer
セキュリティ
ソフトウェア開発
Microsoft
Tips
Chrome
RIA
話題のタグを見る »
グーグル、JavaScriptプログラミングツールをリリース
Windowsの歴史 Windows Server 2008編:同じカーネルを持つ「Vista」とは対照的に早くから支持を得たサーバOS
Windowsの歴史 Windows Server 2003 R2編:安定性と先進性の両立目指す「R2」の先駆けとなったOS
モジラ、「Firefox 3.6」の第1ベータ版をリリース
100万円で実現!中小企業の情報漏えい対策
―エン・ジャパン厳選求人☆毎週更新―
企業ITシステムの企画、構築、運用のイロハ
【最終警告】パンデミック対策特集
大丈夫?あなたの会社のセキュリティ対策
最大32個のセンサーが電力を徹底管理!
進むストレージ環境の見直し