回答:
最初と3番目は同等であり、新しい配列を作成します。2番目は、配列ではなく新しい空のオブジェクトを作成します。
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
myObject["someValue"]
またはmyObject.someValue
。作成された空のオブジェクト{}
の意志はもちろん、それらの性質を持っていないが、あなたは同じように彼らに割り当てることができますmyObject.someValue = "hello!"
var a = new Array(5)
そしてvar b = [5]
、その後a
≠ b
(以降a.length
= 5ながらb.length
= 1、a[0]
でありundefined
ながらb[0]
5である、など。)
var a;
とvar a = {};
同じ?
var myObject = {};
varと同等 myObject = new Object();
したがって、2番目の例はArray
一般的なものではありませんObject
。
これはArray
クラスであり、クラスでもObject
あり、より正確にArray
はのサブクラスなので、混乱する可能性がありObject
ます。したがって、Object
概して、セマンティクスは以下に適用できますArray
。
var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value'; // define a custom property.
console.log(o.property1);
console.log(o.length); // Outputs '2' as we've only push()'ed two elements onto the Array
o['property1'] = 'property value'
、実際には配列に要素を追加するのではなく、配列オブジェクトのプロパティを設定します。混乱していますか?私はyaに言った;)JavaScriptでは、基本的にすべてがオブジェクトです。他の目的は、のようなArray
、RegExp
...更なる機能を持つ基本的なオブジェクトを拡張します。プレーンな空のオブジェクトは、中括弧で作成されますplain_obj = {}
。