非常に簡単なJavaScriptのこれらの行を過ぎて私と一緒に裸をしてください!JavaScriptの配列要素はArrayオブジェクトのプロパティだけですか?
私は次のことを観察した:
var o = {}; // empty JS object
var a = []; // empty JS array
o.myproperty = "I am property";
a.push("I am array element");
alert(o['myproperty']); // alerts "I am property"
alert(o.myproperty); // alerts "I am property"
alert(a[0]); // alerts "I am array element"
alert(a['0']); // alerts "I am array element"
/* Of course, accessing an array element using dot notation (e.g. a.0) would cause a
SyntaxError: Unexpected number (in JavaScript variable names cannot begin with numbers.)
*/
また:
'myproperty' in o // evaluates to true
0 in a // true
'0' in a // true
delete o.myproperty; // true, o is now empty
delete o['myproperty']; // true, o is now empty
delete a[0]; // true, a contains now 1 undefined element
delete a['0']; // true, a contains now 1 undefined element
配列に要素を追加すると、実際に後で使用されている配列オブジェクト、上の番号プロパティを作成しているかのように思え参照によって要素にアクセスする。しかし、いくつかの事柄は、これらのの配列要素のプロパティでは正常なオブジェクトのプロパティと同じように機能しません(例は上記の削除です)。したがって...
TL ... javascript配列要素は、見えない番号の配列オブジェクトプロパティを介して参照によってアクセスされますか?
EDIT はそう思わ:Why is using "for...in" with array iteration a bad idea?
「インデックスとして扱われる」とはどういう意味ですか?インデックスプロパティと別のプロパティの違いは何ですか?おそらく@decezeが答えたところで – Nonorios
@Nonoriosは "インデックスとして扱われる"とは、値を設定すると最高のインデックスに基づいて 'length'を増やすことを意味します。通常のプロパティを設定するとき、 'length'は自動更新されません。 –