JS 中for、while、for in、for of、for each效率对比
1、测试目的:对比JS 中for、while、for in、for of、for each效率
2、测试环境: Node环境和Chrome浏览器环境
3、测试方法:分别使用上述待测接口遍历数组
测试代码如下:
测试结果:
Node环境结果如下
Chrome浏览器环境结果如下
结论:
a)、for与while效率相差无几
b)、for > for each > for in > for of
附上测试源码:
var arr = []
console.time('write array')
for (var i = 0; i < 1000 * 1000; i++) {arr.push(i)
}
console.timeEnd('write array')console.time('for loop read')
var sum0 = 0
for (var j = 0; j < 1000 * 1000; j++) {sum0 += arr[j]
}
console.timeEnd('for loop read')console.time('while read')
var sum1 = 0, index = 0
while (index < 1000 * 1000) {sum1 += arr[index]index++
}
console.timeEnd('while read')console.time('for in read')
var sum2 = 0
for (let key in arr) {sum2 += arr[key]
}
console.timeEnd('for in read')console.time('for of read')
var sum3 = 0
for (let value in arr) {sum3 += value
}
console.timeEnd('for of read')console.time('for each read')
var sum4 = 0
arr.forEach(function (item) {sum4 += item
})
console.timeEnd('for each read')
JS 中for、while、for in、for of、for each效率对比相关推荐
- 在js中使用HashMap数据结构,在js中使用K,V数据结构
首先是定义一个HashMap方法,做基类(复制在js中即可,然后引用) //简单的哈希表,begin function HashMap() {/** Map 大小 * */var size = 0;/ ...
- [JavaScript] 探索JS中的函数秘密
函数长啥样? 把一些要重复使用的内容封装到函数内. function foo(title) {console.log(title) } foo('title') foo('dust') foo('he ...
- 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...
- 在JS中最常看到切最容易迷惑的语法(转)
发现一篇JS中比较容易迷惑的语法的解释,挺有用的,转载下,与大家分享: js中大括号有四种语义作用 语义1,组织复合语句,这是最常见的 Js代码 if( condition ) { //... }e ...
- js去el的map_转:el表达式获取map对象的内容 js中使用el表达式 js 中使用jstl 实现 session.removeattribute...
原文链接: 总结: el表达式获取map对象的内容 后端: HashMap map1 = new HashMap(); map1.put("key1","lzsb&quo ...
- js中substr,substring,indexOf,lastIndexOf的用法
js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(start,length)表示从start位置开始,截取length长度的字符串 ...
- js中的各种宽高以及位置总结
在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...
- WKWebView Safari调试、JS互调、加载进度条、JS中alert、confirm、prompt
主要内容 Safari调试 swift/OC与JS互调 增加加载进度条 支持JS中alert.confirm.prompt Safari调试 设置 -> safari --> 高级,开启J ...
- 彻底理解js中this
相关博文:http://blog.csdn.net/libin_1/article/details/49996815 彻底理解js中this的指向,不必硬背. 首先必须要说的是,this的指向在函数定 ...
- 彻底理解js中this的指向
首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...
最新文章
- Pytorch之GPU加速计算问题以及model=model.to(device)
- html下拉框换行,HTML列表框换行文本
- SAP ui5 control lifecycle - registration and deregistration
- ewebeditor未授权:功能被禁用请先配置授权_SteamPY新功能——外区账号礼物自动领取...
- 比较运算符(ComparisonOperator)
- 深度学习之于传统计算机视觉
- Bailian4072 判断多个点是否在同一直线【数学】
- 机器人学导论,课后习题答案。
- python连接hive--Pyhive
- scala安装与配置(详细步骤)
- 记住网站建设这几个步骤
- SpringBoot水果商城后台管理系统(文末附源码)
- 世预赛:12强赛首战国足0-3不敌澳大利亚,下一场面对日本队国足会如何调整?
- linux ipv6 前缀 定义,IPv6 地址前缀
- Markdown中如何打对勾/对号
- HDU 2111 JAVA
- 人的大脑就是量子计算机吧,新发现!人类大脑其实就是台量子电脑
- Unity2D游戏使游戏角色跳跃的脚本(包括长按跳跃加成)
- 赴美生子入境经验汇总
- 计算机专业必须要i7处理器,懂电脑的人为什么不买i7处理器?有什么依据吗?...
热门文章
- windows 2022IE浏览器证书安全访问解答和理解
- 端口号被占用解决办法
- 流量监控器Bro特性、历史及架构
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
- VS 关于打开程序时不是有效的Win32应用程序
- JAVA(JNA)内联汇编之外挂编写(魔域宝宝出征CALL)
- 数据结构:KMP算法 串的模式匹配算法(全网最详细)
- 学习笔记--深度学习入门--基于Pyrhon的理论与实现--[日]斋藤康毅 -- 持续更新中
- React实现插槽(solt)
- win10远程桌面连接出现你的凭证不工作的简单解决方法