Javascript数组最佳实践使用[]而不是新数组?

时间:2010-05-31 15:10:50

标签: javascript

我在许多教程中读到,创建新javascript数组的当前最佳实践是使用

var arr = [] 

而不是

var arr = new Array()

背后的原因是什么?

5 个答案:

答案 0 :(得分:13)

可能是因为Array对象可以在JavaScript中覆盖,但数组文字表示法不能。有关示例,请参阅this answer

答案 1 :(得分:12)

还要注意:

var x = [5];

与做不同:

var x = new Array(5);

前者创建一个初始化数组,其中一个元素的值为5.后者创建一个初始化一个包含5个未定义元素的数组。

答案 2 :(得分:3)

打字率较低,在我的书中总是胜出: - )

我在其中一个页面上修复了一个奇怪的错误。该页面想要创建一个数字数据库键列表作为Javascript数组。键总是大整数(高位始终设置为指示符)。原始代码看起来像:

 var ids = new Array(${the.list});

那么,猜猜当列表中只有一个值时会发生什么?

 var ids = new Array(200010123);

表示“创建一个数组并对其进行初始化,以便有2亿个空条目”。

答案 3 :(得分:1)

通常数组文字(var a = [1,2,3]或a = [])是要走的路。

但有一段时间你需要一个数组,其中长度本身就是数组的定义特征。

var A = Array(n)将(使用文字)需要两个表达式 -

var A = [];则为a.length = N;

无论如何,你不需要使用Array构造函数的'new'运算符, 而不是你需要使用新的Date对象'new'的方式,比如说。

答案 4 :(得分:1)

创建不带长度的数组

object someInstance {
  def fx(x: Int)(f: Int => Int): Int = f(x)

  val test = (this fx 2) (x => x * x)
}

// OR
val test2 = (someInstance fx 2) (x => x * x)

更动态地创建具有长度的数组

var arr = [];

创建长度不太动态的数组

var arr;
( arr = [] ).length = 10;  // 10 is array length