Javascript中的Array()和[]之间有什么区别?为什么要使用一个而不是另一个?

Javascript中的Array()和[]之间有什么区别?为什么要使用一个而不是另一个?,javascript,arrays,literals,Javascript,Arrays,Literals,可能重复: 在JavaScript中,您可以创建一个新数组,如: var arr = new Array(); 或者说: var arr2 = []; 有什么区别?为什么你会选择一个而不是另一个呢?我相信它们是一样的。我从不使用新数组() 新数组(2)生成一个大小为2的数组,其中包含两个未定义的s[2]生成一个大小为1的数组,其中包含数字2new ArrayIMO不符合JavaScript的精神,尽管它可能使数组构造更易于查找。这可能重要,也可能不重要(我几乎只在JavaScript中为所

可能重复:

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

var arr = new Array();
或者说:

var arr2 = [];

有什么区别?为什么你会选择一个而不是另一个呢?

我相信它们是一样的。我从不使用新数组()

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

编辑我想经验丰富的javascript程序员避免
新数组
语法的原因是:

  • 它在参数编号和类型(
    (新数组(X))之间的行为并不一致。对于任何
    X
    ,只要
    typeof(X)!=“number”
  • 它更冗长,你唯一得到的是不规则
使用
[]
优先于
新数组()
的另一个(次要)原因是
数组
可能被覆盖(尽管我从未见过这种情况发生过),并且
[]
保证工作正常

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

据我所知,它做同样的事情。使用你喜欢的任何一种。哇,愚蠢的是,当我问这个问题时,DUP检测器没有检测到这个。问题几乎是一样的…同意,两种方法可以制作相同的东西,但你为什么不使用新的数组()?我知道最“有经验的”JavaScript开发人员不喜欢,但为什么不呢?第一个要点非常完美。这正是我想要的。谢谢!