小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

JavaScriptでの配列は、ハッシュにもオブジェクトにもなる!

以下のようにJavaScriptでの配列は、ハッシュにもオブジェクトにもなりますね。
また、配列作成には3通りがあります。

  1. 配列リテラルで配列作成(大括弧[])
  2. オブジェクトリテラルで配列作成(中括弧{})
  3. new Array で配列作成

サンプルソース

<html>
<body>
<script type="text/javascript">
//var  a = [];     // 配列リテラルで配列作成(大括弧[])
//var  a = {};     // オブジェクトリテラルで配列作成(中括弧{})
var a = new Array; // new Array で配列作成

    //配列
    a[0] = "123";
    a[1] = 123;

    //ハッシュ
    a["aaa"] = "456";
    a["bbb"] = 456;

    //オブジェクト
    a.xxx = "789";
    a.yyy = 789;

    for (var i in a) {
        document.write("a["+i+"]の値 = "+a[i]+";<br>");
    }
</script>
</body>
</html>

サンプル実行結果

a[0]の値 = 123;
a[1]の値 = 123;
a[aaa]の値 = 456;
a[bbb]の値 = 456;
a[xxx]の値 = 789;
a[yyy]の値 = 789;

っていうか、JavaScriptでの配列は、ハッシュにもオブジェクトにもなるではなく、
JavaScriptでは、すべてがオブジェクトで、それが配列やハッシュのように扱えるってことかな・・・。

補足

  • 配列の配列数は自動拡張します。
  • ハッシュのハッシュキーは自由に追加できます。
  • オブジェクトのプロパティは自由に追加できます。
  • for (var i in a) は オブジェクト(配列、ハッシュ)のプロパティが i に順次格納される。
  • つまり、「0」「1」「aaa」「bbb」「xxx」「yyy」はプロパティである。