考虑到代码少简洁,我常常用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相关推荐

  1. js数组中forEach/some/every/map/filter/reduce的区别

    2019独角兽企业重金招聘Python工程师标准>>> // js数组中forEach/some/every/map/filter/reduce的区别// 1. foreach:就是 ...

  2. JS数组中 forEach() 和 map() 的区别

    JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...

  3. php中的foreach和js中的foreach的用法和区别

    PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...

  4. 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 ...

  5. JS数组遍历-forEach()、map()方法

    [{a:'1',b:'11'},{a:'2',b:'21'},{a:'3',b:'31'}].forEach((item, index, array) => {let c = '';let d ...

  6. JS 中的foreach和For in比较

    使用方式举例如下: <script type="text/javascript"> var jsonranklist=[{"name":" ...

  7. js中的forEach

    chrome和firefox支持数组的forEach,但不支持对象的forEach,IE啥都不支持 jquery中的$.each(ArrayOrObject,function)既可以遍历数组又可以遍历 ...

  8. js中的forEach、for in 、for of之间的区别

    forEach: 一般用于对数组的遍历,不用于对对象的遍历,此方法会对数组中的每一个值进行遍历,直至全部遍历完成.故在其中的return,break会失效. for in: 一般用于遍历对象,循环遍历 ...

  9. 前端js 面试题 forEach 和 map 有什么区别?

    1) 遍历数组-- 更改 item和index 不会更改原数组 更改本身(arr)会使原数组更改. 没有返回值 undefined var arr = [1,2,3,4,5] var result = ...

最新文章

  1. matplotlib显示中文钥匙
  2. Win32汇编基本编程框架
  3. 安卓app开发工具_怎么开发app软件需要多少钱?主流app开发工具盘点
  4. 重学java基础第四课:关于教育和对大家的期望
  5. Android 系统(210)----Android的.so文件你需要知道那些知识
  6. ES6模块的循环加载
  7. java流有什么用_在Java中,流比循环有什么优势?
  8. mcrotime php_php时间函数time、date和microtime的区别 | 木凡博客
  9. sql 整改措施 注入_记一次Sql注入 解决方案
  10. 用友U8 ERP系统材料出库单打印格式设置-表格格式调整
  11. VBA实战(6) - 数组
  12. 深度深度网络设计中各种归一化方法总结
  13. 碲化铋纳米线合成步骤
  14. 小白的倔强-NPN和PNP三极管的使用区别以及简单检测
  15. win10部署milvus以图搜图2.0
  16. 回顾2022年计算机视觉领域最激动人心的进展
  17. 诺贝尔奖得主费曼大神教你如何学习
  18. 在Git中,origin / master与origin master之间有什么区别?
  19. 万历十五年 - 笔记
  20. 文本处理工具简单介绍

热门文章

  1. 战无不胜!!!谈一下昨晚捷克甲的比赛!!
  2. html+css移动端布局
  3. C++计算球弹跳的高度
  4. SpringBoot上传文件到 后端服务器 或 云服务器(七牛云、阿里云、腾讯云等等都是一样的操作步骤)
  5. win10引导Ubuntu开机的注意事项
  6. Pycharm2019.2.3专业版配置
  7. ElasticSearch学习笔记之十一 Anayle API和IK分词器
  8. 动感单车花式动作123
  9. 使用POI进行Excel操作的总结一——创建Workbook,Sheet,Row以及Cell
  10. mysql 表名批量转大写_(转)mysql数据库表名批量修改大小写