Javascript中的Array()和[]有什么区别?为什么我会使用另一个?

时间:2010-02-04 22:31:00

标签: javascript arrays literals

  

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

在JavaScript中,您可以创建一个新的数组,如:

var arr = new Array();

或者喜欢:

var arr2 = [];

有什么区别,你为什么要做另一个呢?

3 个答案:

答案 0 :(得分:4)

new Array(2)引用一个大小 2 的数组,其中包含两个undefined个。 [2]生成一个大小为 1 的数组,其中包含数字 2 new Array IMO不符合JavaScript的精神,即使它可能使阵列构造更容易找到。这可能有也可能没有任何重要性(我几乎只在JavaScript中使用所有适用类型的文字,并且我已成功创作/维护大部分JavaScript [30-50 KLOC]。)

编辑我想经验丰富的javascript程序员避免使用new Array语法的原因是:

  • 只要 (new Array(X)).length == 1
  • ,参数编号和类型(X }的行为不一致typeof(X) != "number"
  • 它更冗长,你唯一获得的是不规则性

答案 1 :(得分:2)

使用[]优先于new Array()的另一个(次要)原因是Array可能会被覆盖(尽管我从未见过它)和[]保证工作。

Array = "something";
var a = new Array(); // Fails
var b = []; // Works

答案 2 :(得分:0)

我相信他们是完全相同的。我从不使用新的Array();