免责声明 => 本博客不涉及业界轰轰烈烈的技术提升分享,只在点点滴滴的个人分享
首先我们来列举涉及到循环遍历的数组方法及内置for
- for (17ms)(我可以break)
- while(16.8ms)
- for of(16.8ms)
- for in(12ms)(索引不一定按顺序返回,但或许可以适用于遍历查询的场景下)
- forEach (17ms)(我只能return,但还是会循环)
- map(18.7ms)(Polyfill也是ES规范内部实现代码多了一步 => 创建新数组的操作)
- filter(同上)
- reduce(同上)
- some(16.8ms)
- every(同上)
- includes (1.7ms仅限于查询某条数据的情况下)
测试工具
console.time(‘cool’)
适用场景
从5开始的方法都可以在MDN查看其内部实现;
- 如果你需要返回一个全新的数组(请使用map,filter,reduce)
- 如果你想要查询请用集成API(some,every,includes)(在表达式的情况下也可以使用)
性能优化引用一篇blog的话 => 额外因素很多
These result does not consider the JIT, inline caching, hidden classes, deoptimizations, garbage collection, pretenuring etc.
本来想看看数组这边的优化点,结果发现暂无比较强劲的优化点。
下一篇hook的学习分享