为什么要使用" new"创建一个被认为不好的Javascript数组?

时间:2015-03-25 15:42:09

标签: javascript arrays

W3 Schools says

  

这两个不同的语句都创建了一个包含6的新数组   数字:

 var points = new Array(40, 100, 1, 5, 25, 10)  // Bad 
 var points =[40, 100, 1, 5, 25, 10];          // Good

但没有解释为什么第一个不好。

据我所知,唯一的区别是第一个调用构造函数。有人能告诉我为什么第一个是坏的?

1 个答案:

答案 0 :(得分:17)

真正的原因是这个构造函数不一致。

var points = new Array(40)

创建一个大小为40但没有内容的数组

var points = new Array(40, 50)

创建一个大小为2且包含2个元素的数组。

使用

更简单,更易读
var points = [40];

var points = [40, 50];

当你想构建一个数组时,也没有理由使用这个构造函数,只需使用一个文字数组,就像你使用文字数字一样。

当你想构建一个给定大小的空数组时,只使用Array构造函数(这应该是非常罕见的)。

ES 2015编辑:

由于这种不一致,ES2015为我们带来了一个新的静态函数Array.ofArray.of(40)生成[40]数组。