アカウント名:
パスワード:
var arr=[]; // arrはArrayになるarr["a"]=123; // arrのaというプロパティに代入
Array objects give special treatment to a certain class of property names. A property name P (in the form ofa string value) is an array index if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is notequal to 232−1.
var aa=[]; aa={"a":1, "b":2, "c":3};
# もう解決済みかもしれませんが、返答を読むと気になったので...
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds
Re: Javascriptの連想配列と配列 (スコア:0)
# 本文中に解説は見当たらなかった...
JavaScriptではオブジェクト≒連想配列で、配列は配列のオブジェクトという扱いになっているようです。Perlのオブジェクトに似てますね。
Re: Javascriptの連想配列と配列 (スコア:1)
ACさんありがとうございます! おかげさまで、根本的な誤解を解くことができました。
>仕様書のP.158を参照。
なるほどここ(PDF) [ecma-international.org]を見ればよかったのですね。
> JavaScriptではオブジェクト≒連想配列
これはなんとなく知っていました。
>配列は配列のオブジェクト
これを忘れていました! 配列といえどもオブジェクトだから、プロパティを持てるのですね。
たとえばこれの2行目がaというプロパティへの代入だということを認識していなかったです。
そうなると、「『for-in statement』で走る範囲や『[]』でのアクセス方法が『配列の要素』と『オブジェクトのプロパティ』の両方とも同じ扱いで混乱するな」
と思って仕様書を見ると、そもそもArray Objectsの最初の部分(PDF) [ecma-international.org]に
と書いてあるじゃないですか。配列の要素ってオブジェクトのプロパティの一種だったのですね。別物だと誤解していました。
あースッキリ。ACさん改めてありがとうございます。
Re: Javascriptの連想配列と配列 (スコア:0)
# もう解決済みかもしれませんが、返答を読むと気になったので...
Re: Javascriptの連想配列と配列 (スコア:1)