性能在(数组中的var x)和(var x = 0,y = array.length; x)之间的差异

时间:2012-06-08 12:06:52

标签: javascript performance for-loop

当我希望loop通过array并在每个element后面添加一个字符串时,

我可以

for(var x in array){
 array[x] += "string";  
}

for(var x, y = array.length; x<y; x++){
 array[x] += "string";  
}

但这两个for loops之间是否存在性能方面的差异

2 个答案:

答案 0 :(得分:3)

建议您不要使用for ... in来迭代数组。

即。 Why is using "for...in" with array iteration a bad idea?

您应该使用for ... in仅迭代对象属性。

答案 1 :(得分:1)

通常,for...in速度较慢,因为它作为公共对象访问数组,而经典for周期不需要整理array的所有属性执行任务。

请记住,现代浏览器对数组进行了特殊优化,但如果将它们视为常见对象,则无法利用它们。