优化 JavaScript 中的数组迭代:缓存长度与直接长度访问
循环数组是 JavaScript 中的基本操作。但最快的方法是什么?传统观点认为,缓存数组的长度可以通过避免重复计算来提高性能。然而,一些人认为现代编译器优化了直接长度访问。
争论:缓存与直接访问
传统上,推荐的方法是缓存数组长度:
for (var i = 0, len = arr.length; i 此方法将数组长度存储在局部变量 len 中,以避免在循环内重复计算它。
其他人认为编译器优化了直接长度访问,从而使缓存变得多余:
for (var i = 0; i 基准测试结果
为了确定最有效的方法,在各种现代浏览器上进行了基准测试:https://jsben.ch/wY5fo。
结论:缓存长度取得胜利
尽管存在直接长度访问的争论,但基准测试结果表明缓存数组的长度仍然是实践中最快的方法 。这可能是由于 JavaScript 引擎所做的优化,它优先考虑清晰性而不是聪明性。
因此,在 JavaScript 中循环数组的推荐方法是利用 带有长度缓存的标准 for 循环:
var i = 0, len = myArray.length;
while (i
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3