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件)
- ホワイトペーパー
- 企画特集
ストレージメディア特設サイト開設
ESBでIT投資の無駄を劇的に解消する
仮想環境を実現するソリューション特集
今注目の「サジェスト検索」−デモ掲載中
御社のログ活用しませんか!?
インターネット上の悪意を未然に防ぐには?
集積度も性能も、業界最高水準のブレードPC
セキュリティ&ユーザ事例【SIer Club】
そのストレージで仮想化に対応できますか?
SOA、BPM、SaaS −今、企業に必要なこと
中小企業のセキュリティリスクとは?
パンデミック対策特集
◆エン・ジャパン厳選求人☆毎週更新◆
ロリポップ!がリニューアル
【徹底対談】運用管理ツールの賢い使い方
- ■ストレージ容量50%削減保証■
- サーバー監視・運用のコストを削減するには
- エンタープライズにおけるSUSEの強み
- サービス・ドリヴン・データセンター
- 話題のタグ
ブラウザ
Safari
Adobe
Windows
JavaScript
ツール
Google
Flash
Windows 7
小技
リファレンス
iPod touch
Firefox 3
SOA
OS
Mozilla
Firefox
ソフトウェア開発
Tips
Linux
Apple
iPhone 3G
Database
Opera
PHP
オープンソース
Java
Microsoft
Ajax
データベース
セキュリティ
Off Topic
RIA
仮想化
Windows Vista
CSS
WebKit
HTML
iPhone
UI
脆弱性
Chrome
開発環境
アプリケーション
Mac OS X
Webサービス
Webデザイン
モバイル
プログラミング言語
Internet Explorer
話題のタグを見る »
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――