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件)
- 今日のトップ記事
- 昨日
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
Ajax
Flash
RIA
Chrome
開発環境
データベース
Microsoft
インストール
Windows Vista
OS
Java
小技
Webサービス
JavaScript
Webデザイン
Windows XP
マイクロソフト
プログラミング言語
Firefox
iPod touch
Firefox 3
Google
UI
WebKit
Windows
CSS
セキュリティ
Mac OS X
オープンソース
モバイル
リファレンス
Mozilla
ブラウザ
Opera
Internet Explorer
iPhone 3G
iPhone
ソフトウェア開発
脆弱性
Windows 7
仮想化
Safari
HTML
Apple
Tips
アプリケーション
Linux
Database
クラウド
Off Topic
話題のタグを見る »
「Google Chrome」の拡張機能、開発者からのアップロード受付を開始
IMAPでGmailを受信、最も手っ取り早いのは?Windows 7、Ubuntu 9.10、Snow Leopardのメーラー比較
Snow LeopardではNTFSをサポート--その源流を訪ねる(2)
MS運営のオープンソース開発プロジェクト支援サイト「CodePlex」を探検する(2)
Snow LeopardではNTFSをサポート--その源流を訪ねる(1)
フォトレポート:「Windows Server 2008 R2」--あまり知られていない有用な機能10選
―エン・ジャパン厳選求人☆毎週更新―
企業ITシステムの企画、構築、運用のイロハ
電力に"ふた"をする独自の省エネ機能とは!?
【最終警告】パンデミック対策特集
高まるiSCSIストレージへの注目度
100万円で実現!中小企業の情報漏えい対策
大丈夫?あなたの会社のセキュリティ対策