在JavaScript中使用[]而不是新的Array()的优点

时间:2010-03-25 15:49:30

标签: javascript

使用

有什么好处
var foo = []; 

过度使用

var bar = new Array();

我被告知在新的Array()上使用[]但从来没有多少解释

7 个答案:

答案 0 :(得分:32)

使用[]而不是new Array()的主要原因是您传递的参数。当您使用new Array(10)时,您创建一个包含10个元素的空数组,但是当您使用[10]时,您创建的数组中包含一个值为10的元素。由于这通常是大多数程序员想要传递给数组的信息(因为数组在Javascript中是动态的),这通常被认为是最佳实践。 new Array(10,20)的工作方式与new Array(10)的工作方式不同。在这种情况下,你具有与[10,20]相同的效果,即创建一个包含2个元素10和20的数组。因为这是......奇怪的...很容易通过传递意外地创建一个空数组new Array()只有一个值。 []总是有同样的效果,所以我也建议坚持下去。

答案 1 :(得分:7)

  • Array的参数令人困惑(例如new Array(10)new Array("10")完全不同)

答案 2 :(得分:3)

两者都可以用得很好。自Javascript专家Douglas Crockford告诉the new keyword is considered harmful以来,这种讨论/混淆已经开始。从那时起,将new关键字省略以避免意外结果/行为被认为是“良好做法/技巧”。另请参阅此Stackoverflow topic

答案 3 :(得分:3)

三个原因(前两个原因在其他答案中得到了扩展):

  1. 短;
  2. 允许使用一个元素创建数组,详见Chibu的答案;
  3. 即使在Array构造函数被覆盖的情况下也是如此。
  4. 非原因:

    1. 避免使用new运算符。不要因为道格拉斯·克罗克福德曾经被它咬过而害怕new。这非常有用。

答案 4 :(得分:2)

它在代码高尔夫中得分较少。

答案 5 :(得分:1)

这是一回事。使用[]超过new Array()的唯一原因是它更短。

答案 6 :(得分:1)

更短更清洁。应该使用{}来创建对象。