这些数组有什么区别?

时间:2012-02-16 07:20:21

标签: javascript arrays object

var foo = {}
var bar = new Array();
var another = [];

此外,是否可以像这样添加foo

foo['obj'] = new Date();

5 个答案:

答案 0 :(得分:5)

var foo = {};

foo是一个对象文字。

var bar = new Array();

bar是通过Array构造函数初始化的数组。

var another = [];

another是一个数组文字。通过文字创建新数组比通过Array构造函数更有效:http://jsperf.com/new-array并且输入也更容易;)我建议尽可能使用数组文字。

  

此外,是否可以像这样添加foo:foo['obj'] = new Date();

是。这会将属性obj添加到foo,其值为new Date()。它是equivalentfoo.obj = new Date();

答案 1 :(得分:1)

foo是一个对象,而不是一个数组。 baranother是数组。

如果您提供foo['obj'] = new Date();obj将成为foo的属性。

答案 2 :(得分:1)

  

var foo = {}

这是一个对象,而不是一个数组。

  

var bar = new Array();

这是数组but avoid new keyword with arrays

  

var another = [];

这是初始化数组的正确方法。

  

另外,是否可以像这样添加foo:foo ['obj'] = new Date();

JS中没有关联数组。你可以这样做:

var foo = {};
var foo['obj'] = new Date();

答案 3 :(得分:0)

bar 另一个是相同的,但是:

var foo = {}; 

foo不是数组而是对象

foo['obj'] = new Date(); //same as
foo.obj = new Date();

f ['obj'] 的优点是你可以使用无效的标识符字符ex:

   foo['test-me'] // is valid
   foo.test-me //not valid

答案 4 :(得分:0)

var foo = {} is for object referal,
    foo = {myCar: "Saturn", getCar: CarTypes("Honda"), special: Sales}

而     var bar = new Array();用于创建新的空数组。

var another = [];可用于分配任何数组空值以及创建空数组。 我认为,对于约会,您可以使用foo[1] = new Date();