Answers:
第一个和第三个相等,并创建一个新数组。第二个创建一个新的空对象,而不是数组。
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]是undefinedwhile b[0]是5,依此类推。)
var a;和var a = {};相同?
var myObject = {}; 等价于var myObject = new Object();
因此,第二个例子不是an,Array而是general 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',您实际上并没有在数组中添加元素,而是在设置array对象的属性。困惑?我告诉ya;)在JavaScript中,基本上所有东西都是对象。其他对象,例如Array,,RegExp...扩展了基本对象的功能。将使用大括号创建一个普通的空对象plain_obj = {}。