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 语句迭代的是自定义的属性而不是数组的元素。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式
- 数组方法汇总