seclan のほえほえルーム

| |

Javascript: オブジェクトと配列の違い

・
2006/09/07 []

Javascript ではオブジェクトはハッシュで実現されています。

var obj = { a: "string", b: 3, c: true };

一方、配列は順序付けアクセス可能な別種のオブジェクトのように見えます。

var arr = [ "string", 3, true ];

しかし、その考えは誤りで、実質オブジェクトのエイリアスです。具体的には次のように、単なる数字をキーとするハッシュで実現されています。

var arr = { 0:"string", 1:3, 2:true };

つまり Javascript での配列とは、配列という概念をあらわすシンタックスシュガーで、それに配列を便利に操作するための関数群が追加されている、実態は単なるオブジェクトです。その証拠に arr['oooo']=true; といった、数字ではない添え字を用いた代入が出来てしまいます。

または、オブジェクトとは連想配列のことで、配列が数字を添え字とする普通の配列とみなすことが出来ます。そのようなことから、配列に文字列を添え字とする値は代入しないほうがよいです。そのような用途にはオブジェクトを使うか、新たにハッシュオブジェクト (クラス) を作り、それを経由して使用するほうがよいでしょう。



by seclan

関連


| |

 

配信

4.53 msec