我想在 javascript 中创建一个数组并记住两种实现方法,所以我只想知道根本区别是什么,以及这两种“样式”是否存在性能差异
var array_1 = new Array("fee","fie","foo","fum");
var array_2 = ['a','b','c'];
for (let i=0; i<array_1.length; i++){
console.log(array_1[i])
}
for (let i=0; i<array_2.length; i++){
console.log(array_2[i])
}
最佳答案
他们做同样的事情。 []
表示法的优点是:
- 它更短。
- 如果有人做了一些愚蠢的事情,比如重新定义
Array
符号,它仍然有效。 - 当您只定义单个条目时,不会产生歧义,而当您编写
new Array(3)
时,如果您习惯于查看构造函数中列出的条目,则很容易将其误读为意思是[3]
,而实际上它创建了一个长度
为3并且没有条目的新数组。 - 它可能会快一点点(取决于 JavaScript 实现),因为当您说
new Array
时,解释器必须查找Array
符号,这意味着遍历作用域链中的所有条目,直到到达全局对象并找到它,而使用[]
则不需要这样做。在正常用例中产生任何实际影响的可能性很低。尽管如此...
因此,使用 []
有几个很好的理由。
新数组的优点:
- 您可以设置数组的初始长度,例如
var a = new Array(3);
我已经好几年没有任何理由这样做了(自从得知arrays aren't really arrays之后就不再这样做了,并且尝试预先分配它们是没有意义的)。如果你真的愿意,你可以随时这样做:
var a = [];
a.length = 3;
关于javascript - 在javascript中定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047582/