这些在javascript中定义数组的方法之间的区别是什么?

时间:2010-07-27 21:39:45

标签: javascript

  

可能重复:
  What’s the difference between “Array()” and “[]” while declaring a JavaScript array?

这两种在javascript中定义数组的方法有什么区别?

var arrayList = []

var arrayListAgain = new Array();

4 个答案:

答案 0 :(得分:4)

一个是好的,另一个是坏的: - )

不用说,第一种方式更短(通过线路发送的字节更少),并且没有任何奇怪的潜在问题。然而,第二个将正常工作。

new Array()的奇怪部分是:如果将一个数字参数传递给构造函数,则意味着“初始化数组,以便存在给定的空数(null)数组元素,以便length等于给定的数字。“ (好吧,它必须是整数,我认为实际上。)如果你传递一个非数字,或两个或多个数字,这意味着,“初始化数组,使其内容反映这个参数列表“。

好的,现在我说有一个奇怪的部分,就是这样:如果你正在使用某种服务器端框架,并且你想创建一个数值值数组(整数值),比如说唯一的数据库密钥,然后你可能会想要这样做:

var keys = new Array(< @ favoriteTemplateLanguage.forEach(idList):print(id +',')@>);

(当然我编写了这种语法。)现在,如果服务器端的密钥列表中只有一个“id”,会发生什么?

答案 1 :(得分:2)

您可以使用第二个来定义预定义长度的数组,例如

var arrayListAgain = new Array(20);

将创建一个包含20个(未定义)元素的数组。

另见new Array (len)

答案 2 :(得分:1)

什么都没有。两者都创建了一个Array对象的新实例。

道格拉斯·克罗克福德在'Javascript the good parts'推荐前一种方法,因为它更简洁。

答案 3 :(得分:1)

他们是一样的。根据{{​​3}}:

  

当前的最佳实践避开了   Javascript上的“new”关键字   原语。如果你想创建一个   new Array只需使用方括号[]   这...... var myArray = [];

我建议阅读该页面,它包含大量有关数组和JS的有用信息。