gpt4 book ai didi

javascript - for 循环条件是否优化?

转载 作者:行者123 更新时间:2023-11-29 17:19:46 25 4
gpt4 key购买 nike

几年前,我听说每次循环运行时都会评估 for 循环的条件部分。此外,该属性访问相对昂贵。

从那以后我就养成了写for循环的习惯:

var data = [1,2,3,4,5,6];
for (var i=0, l=data.length; i<l; i++) {
// do stuff
}

这是不必要的优化吗?现代 Javascript 编译器/解释器是否已经优化了条件部分,因此长度属性不会被多次访问?

这到底有多大影响?

最佳答案

Is this an unneeded optimisation?

是的,几乎总是如此。我确信每个 JavaScript 实现都具有 O(1) 的复杂性来获取长度。我能想象到的唯一一种你真正想要使用哪怕是最微小的优化的情况就是游戏引擎。但是,如果您编写一个“普通”JavaScript 应用程序,这真的无关紧要 - 如果没有这种优化,您的代码可读性会好得多。

您还需要查看与循环体相比可能出现的性能损失。它很可能涉及访问其他变量、您正在迭代的元素的属性,甚至修改 DOM(这通常非常昂贵)。

如果在大多数情况下循环性能是一个大问题,您可以非常确定 vendor 不会实现 Array.prototype.forEach(),它伴随着每个函数调用的开销“迭代”- 与 DOM 操作(在使用 jQuery 的 .each() 的情况下尤其有可能)相比,即使这样也很便宜。

关于javascript - for 循环条件是否优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com