首页 热点资讯 义务教育 高等教育 出国留学 考研考公

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

发布网友

我来回答

2个回答

热心网友

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

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

热心网友

在看一本《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 效率是比较低的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com