js的 for forEach
考虑到代码少简洁,我常常用forEach,在我的猜想里我觉得forEach要耗性能。今天查看了这方面的知识,以后还是多用for少用forEach(如果for能做到的话),
for 循环没有任何额外的函数调用栈和上下文;
forEach函数签名实际上是 array.forEach(function(currentValue, index, arr), thisValue)
它不是普通的 for 循环的语法糖,还有诸多参数和上下文需要在执行的时候考虑进来,这里可能拖慢性能
但 在node.js运行环境下,有一个惊人的发现
let arrs = new Array(100000);console.time('for');
for (let i = 0; i < arrs.length; i++) {};
console.timeEnd('for');console.time('forEach');arrs.forEach((arr) => {});
console.timeEnd('forEach');for: 2.263ms
forEach: 0.254ms
在10万这个级别下, forEach 的性能是 for的十倍for: 2.263ms
forEach: 0.254ms
在100万这个量级下, forEach 的性能是和for的一致for: 2.844ms
forEach: 2.652ms
在1000万级以上的量级上 , forEach 的性能远远低于for的性能for: 8.422ms
forEach: 30.328m
对于小少数据,可以选forEach也可以选for ,对于极大超大的,还是乖乖用for好了。
PS:
看到过一个说法,forEach能让代码更为简便和可读性更高,在性能不是特别影响的前提下,代码的可拓展性,可读性等会更为重要,而且随着浏览器引擎的升级,应该forEach的性能会被优化的越来越棒的
js的 for forEach相关推荐
- js数组中forEach/some/every/map/filter/reduce的区别
2019独角兽企业重金招聘Python工程师标准>>> // js数组中forEach/some/every/map/filter/reduce的区别// 1. foreach:就是 ...
- JS数组中 forEach() 和 map() 的区别
JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...
- php中的foreach和js中的foreach的用法和区别
PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...
- js for、forEach, 跳出多层循环
1.for跳出循环 var a = [1, 2, 3, 4, 5, 6, 7, 8]; // 8个数 var b = [11, 12, 13, 14, 15, 3, 16, 17]; //8个数tes ...
- JS数组遍历-forEach()、map()方法
[{a:'1',b:'11'},{a:'2',b:'21'},{a:'3',b:'31'}].forEach((item, index, array) => {let c = '';let d ...
- JS 中的foreach和For in比较
使用方式举例如下: <script type="text/javascript"> var jsonranklist=[{"name":" ...
- js中的forEach
chrome和firefox支持数组的forEach,但不支持对象的forEach,IE啥都不支持 jquery中的$.each(ArrayOrObject,function)既可以遍历数组又可以遍历 ...
- js中的forEach、for in 、for of之间的区别
forEach: 一般用于对数组的遍历,不用于对对象的遍历,此方法会对数组中的每一个值进行遍历,直至全部遍历完成.故在其中的return,break会失效. for in: 一般用于遍历对象,循环遍历 ...
- 前端js 面试题 forEach 和 map 有什么区别?
1) 遍历数组-- 更改 item和index 不会更改原数组 更改本身(arr)会使原数组更改. 没有返回值 undefined var arr = [1,2,3,4,5] var result = ...
最新文章
- matplotlib显示中文钥匙
- Win32汇编基本编程框架
- 安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点
- 重学java基础第四课:关于教育和对大家的期望
- Android 系统(210)----Android的.so文件你需要知道那些知识
- ES6模块的循环加载
- java流有什么用_在Java中,流比循环有什么优势?
- mcrotime php_php时间函数time、date和microtime的区别 | 木凡博客
- sql 整改措施 注入_记一次Sql注入 解决方案
- 用友U8 ERP系统材料出库单打印格式设置-表格格式调整
- VBA实战(6) - 数组
- 深度深度网络设计中各种归一化方法总结
- 碲化铋纳米线合成步骤
- 小白的倔强-NPN和PNP三极管的使用区别以及简单检测
- win10部署milvus以图搜图2.0
- 回顾2022年计算机视觉领域最激动人心的进展
- 诺贝尔奖得主费曼大神教你如何学习
- 在Git中,origin / master与origin master之间有什么区别?
- 万历十五年 - 笔记
- 文本处理工具简单介绍
热门文章
- 战无不胜!!!谈一下昨晚捷克甲的比赛!!
- html+css移动端布局
- C++计算球弹跳的高度
- SpringBoot上传文件到 后端服务器 或 云服务器(七牛云、阿里云、腾讯云等等都是一样的操作步骤)
- win10引导Ubuntu开机的注意事项
- Pycharm2019.2.3专业版配置
- ElasticSearch学习笔记之十一 Anayle API和IK分词器
- 动感单车花式动作123
- 使用POI进行Excel操作的总结一——创建Workbook,Sheet,Row以及Cell
- mysql 表名批量转大写_(转)mysql数据库表名批量修改大小写