JavaScript数组括号与括号

以下每个数组定义之间有什么区别?

var myArray = []; var myArray = {}; var myArray = new Array(); 

第一个和第三个是等价的,并创build一个新的数组。 第二个创build一个新的空对象,而不是一个数组。

 var myArray = []; //create a new array var myArray = {}; //creates **a new empty object** var myArray = new Array(); //create a new array 

var myObject = {}; 相当于var myObject = new Object();

所以,第二个例子不是一个Array而是一个普通Object

这可能会让人困惑,因为Array是一个类, Object是一个类 – 更确切地说, ArrayObject一个子类。 所以,总的来说, 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