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]
是undefined
while 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 = {}
。