这话我已经听过好几次了.向后计数时,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--;)

当您声明i时,您只计算.length一次,而对于这个循环

for(var i = 1; i <= array.length; i++)

当你判断i <= array.length时,每次增加i,你都会计算.length.

在大多数情况下,你是shouldn't even worry about this kind of optimization.

Javascript相关问答推荐

Flutter:显示PDF和视频,但阻止下载

JavaScript Date对象在UTC中设置为午夜时显示不正确的日期

如何使用Paged.js仅渲染特定页面

创建私有JS出口

如何使用Echart 5.5.0创建箱形图

在Vite React库中添加子模块路径

如何为我的astro页面中的相同组件自动创建不同的内容?

Promise Chain中的第二个useState不更新

CheckBox作为Vue3中的一个组件

setcallback是什么时候放到macrotask队列上的?

如何调用名称在字符串中的实例方法?

用于编辑CSS样式的Java脚本

Html文件和客户端存储的相关问题,有没有可能?

无法使用单击按钮时的useState将数据从一个页面传递到另一个页面

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

对路由DOM嵌套路由作出react

使用js构造一个html<;ath&>元素并不能使其正确呈现

如何在Node.js中排除导出的JS文件

打字脚本中方括号符号属性访问和拾取实用程序的区别

构建器模式与参数对象输入