1 | const TEST_SIZE = 10000000; |
结果
测试环境
机器 iMac (Retina 5K, 27-inch, Late 2015) 10.13.6 (17G65)3.2 GHz Intel Core i5
node v8.11.3
chrome 71.0.3578.98(正式版本) (64 位)
firefox 64.0 (64 位)
safair

谷歌浏览器中 ES6+ 的循环语法会普遍比传统的循环语法慢
不管是 for 循环还是 forEach v8 里面都差不多
对于 “枚举” 循环
数组中应当避免查找空值或者是超出范围的值,这样会导致在原型链中的向上查找,很耗性能。这种循环方式会把所有的元素取出,并不停的迭代下一个,直到出现 undefined 或 null ,这样就出现的向上查找的情景。
对于 提前取数组长度也就是方法二
实际数组的 length 在每次循环中都会重新读区,并不会提前计算好,而是 v8 引擎最大限度的优化了对象取值的性能。