在JavaScript循环语句中,for 和for.in 循环哪个效率更高

如题所述

 用控制台是测不出性能的,因为控制台本质上是个套了一大堆安全机制的eval,它的沙盒化程度很高。用for遍历是比for-in快的,所以数组是决计不要用for-in来遍历的。

  需要遍历一个kv的时候,如果它的key数量较多,比如几十上百个,先用Object.getOwnPropertyNames或者Object.keys获取它所有的keys,再使用遍历keys数组的方式来遍历这个kv,速度也会比直接用for-in快。甚至gOPN比keys还快,当然gOPN自然有其坑爹之处,具体要不要用就看具体场合权衡啦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-19
在看一本《JavaScript程序员参考手册》,书中提到for...in循环的代码优化:
//代码优化前
var myArr=[0,1,2,3];
for(var item in myArr){
myArr[item];
}

解释器遇到for...in 循环时,在后台需要为对象建立一个枚举器(enumerator),这是一个昂贵的操作,所以可将代码优化为:
//代码优化后:
var myArr=[0,1,2,3];
for(var i=0,j=myArr.length;i<j;i++){
myArr[i];
}
for...in 效率是比较低的
相似回答