我已经听过很多次了。向后计数时,JavaScript 循环真的更快吗?如果是这样,为什么?我已经看到一些测试套件示例表明反向循环更快,但我找不到任何解释!
我假设这是因为循环不再需要在每次检查是否已完成时评估属性,而只需检查最终数值。
即
for (var i = count - 1; i >= 0; i--)
{
// count is only evaluated once and then the comparison is always on 0.
}
最佳答案
不是i--
比 i++
快.实际上,它们都同样快。
对于每个 i
而言,升序循环需要时间进行评估,你的数组的大小。在这个循环中:
for(var i = array.length; i--;)
您评价.length
只有一次,当你声明 i
, 而对于这个循环
for(var i = 1; i <= array.length; i++)
你评价 .length
每次递增 i
, 当你检查 i <= array.length
.
在大多数情况下,您甚至不应该担心这种优化。
关于javascript - 反向循环真的更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1340589/