gpt4 book ai didi

javascript - 不同javascript for循环的性能

转载 作者:行者123 更新时间:2023-11-30 08:44:49 31 4
gpt4 key购买 nike

根据 jsperf 的测试具有这种形式的 javascript 中的 for 循环:

for (var i = 0, item; item = itemsArray[i++];){
item = Math.random();
}

比典型的 for 循环快几个数量级,即使在 IE8 等较旧的浏览器中也是如此。我还没有找到对这个循环结构的另一个引用,我想知道为什么它要快得多?

此外,我还查看了一些 javascript 库的源代码,例如 jQueryKnockoutjs并且他们不在代码中使用此构造。

这让我产生了怀疑。如果这种形式的循环要快得多,为什么由更聪明的人编写的流行库不使用它?

我是否错过了这个循环不如表面上看起来那么好的地方?

最佳答案

Am I missing something where this loop is not as good as it looks on the surface?

每当您的 itemsArray 中的单个 item 为假时,您的条件就无法达到预期。

实际上,这也是为什么您的测试说它会更快的原因,那只是因为它甚至没有像 itemsArray[0] = 0 那样进行第一次迭代。一个updated jsperf迭代 [1..1001] 表明 for 循环的执行非常相似,您的循环实际上是稍慢的循环之一。

why don't popular libraries, written by people much smarter, use it?

他们专注于良好的算法、可读性、可用性、跨浏览器支持(当然还有正确性),而不是微优化。

关于javascript - 不同javascript for循环的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22962960/

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