for (var x in array) 和 for (var x=0, y= array.length; x<y; x++) 之间的性能差异



当我想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性能方面有什么区别吗?

建议不要使用 for ... in 遍历数组。

即为什么使用"为...在"数组迭代是一个坏主意?

应仅使用 for ... in 循环访问对象属性。

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

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

最新更新