三个比它们等效 ES5 速度慢的 ES 6 函数
[Meting] [Music server=“tencent” id=“000AwJtd3Wp27b” type=“song”/] [/Meting] 我在 medium 上看到一篇 3 JavaScript Performance Mistakes You Should Stop Doing 文章(点击阅读全文可以查看原文,需要科学上网),大概意思就是说有 3 个 JavaScript 性能错误,你不应该再去写了。很多“歪果仁”也是一看到这个标题就开始**“喷”**作者了,下文会详细说。我先介绍下这篇文章的主要内容 文章主要内容: 当 ES5 发布的时候,JavaScript 引入了很多新的数组函数。其中包括 forEach,reduce,map,filter - 它们让我们感觉语言在不断增长,功能越来越强大,编写代码变得更加有趣和流畅,结果更易于阅读和理解。 大约在同一时间,一个新的环境–Node.js,它使我们能够从前端到后端平稳过渡,同时真正重新定义完整的全栈开发。 所以作者就测试了一下新提供的这些方法是否会影响我们程序的性能。他在 macOS 上对Node.js v10.11.0 和 Chrome 浏览器执行了以下测试。 1. 循环数组 他想到的第一次很常见的场景,就是计算一下 10k 项的总和。然后比较了使用 for,for of,while,forEach 和 reduce 的随机 10k 项的总和。运行测试 10,000 次返回以下结果: For Loop, average loop time: ~10 microseconds For-Of, average loop time: ~110 microseconds ForEach, average loop time: ~77 microseconds While, average loop time: ~11 microseconds Reduce, average loop time: ~113 microseconds 在谷歌搜索如何对数组求和时,reduce 是最好的解决方案,但它是最慢的。即使是最新的(ES6)也提供了较差的性能。事实证明,老的 for 循环提供了迄今为止最好的性能 - 超过 10 倍以上!...