我在许多教程中读到,创建新javascript数组的当前最佳实践是使用
var arr = []
而不是
var arr = new Array()
背后的原因是什么?
答案 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