8

可能重复:
声明 JavaScript 数组时,“Array()”和“[]”有什么区别?

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

var arr = new Array();

或喜欢:

var arr2 = [];

有什么区别,为什么你会做一个而不是另一个?

4

3 回答 3

4

new Array(2)引出一个大小为2的数组,其中包含两个undefineds。 生成一个大小为1[2]的数组,其中包含数字2。IMO 不符合 JavaScript 的精神,尽管它可能使数组构造更容易找到。这可能很重要,也可能不重要(我几乎只在 JavaScript 中对所有适用类型使用文字,并且我已经成功地编写/维护了大量 JavaScript [30-50 KLOC])。new Array

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

  • (new Array(X)).length == 1它在参数编号和类型之间的行为不一致(X 只要 typeof(X) != "number"
  • 它更冗长,您唯一获得的是不规则性
于 2010-02-04T22:47:38.297 回答
2

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

Array = "something";
var a = new Array(); // Fails
var b = []; // Works
于 2010-02-04T23:22:32.103 回答
0

我相信它们是相同的。我从不使用 new Array();

于 2010-02-04T22:33:00.843 回答