您的位置:首页 > Web前端 > JavaScript

for循环效率对比

2016-03-05 08:22 621 查看

三种for循环

1.【普通】for循环

for(var i = 0;i < arr.length;i++){
console.log(arr[i]);
}


2.【加强版】for循环

for(var i = 0,len = arr.length;i < len;i++){
console.log(arr[i]);
}


3.【for-in循环】

fir(var i in arr){
console.log(arr[i]);
}


时间对比

通过以下代码来计算三个循环的运行时间

function test1(){
var arr = new Array(1000000);
var date1 = new Date();
for(var i =0;i<arr.length;i++){
arr[i]=0;
}
var date2 = new Date();
for(var i =0,j=arr.length;i<j;i++){
arr[i]=1;
}
var date3 = new Date();
for(var i in arr){
arr[i]=2;
}
var date4 = new Date();
var for1_time = (date2 - date1);
var for2_time = (date3 - date2);
var for3_time = (date4 - date3);
console.log(for1_time); //Firefox:10   Chrome:34
console.log(for2_time); //Firefox:4    Chrome:5
console.log(for3_time); //Firefox:750  Chrome:516
}
test1();


结论

1.三者循环的时间关系

加强for循环 < 普通for循环<
for-in
循环


2.分析:

2.1.加强for循环之所以运行时间最短是因为,它相对于普通for循环,少了每一次循环都需要的方法解析(arr.length)

2.2虽然用for…in来迭代Array元素很看起来很方便,但是它返回的除了数字索引外还有可能是你自定义的属性名字。因此还是用带有数字索引的传统的for 循环来迭代一个数组比较好。因为如果你想改变数组对象,比如添加属性或者方法,for…in 语句迭代的是自定义的属性而不是数组的元素。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息