相关疑难解决方法(0)

反向循环真的更快吗?

我听过很多次了.向后计数时JavaScript循环真的更快吗?如果是这样,为什么?我已经看到一些测试套件示例显示反向循环更快,但我找不到任何解释为什么!

我假设它是因为循环不再需要在每次检查它是否完成时评估属性并且它只是检查最终的数值.

for (var i = count - 1; i >= 0; i--)
{
  // count is only evaluated once and then the comparison is always on 0.
}
Run Code Online (Sandbox Code Playgroud)

javascript optimization loops for-loop while-loop

259
推荐指数
19
解决办法
11万
查看次数

后增量与预增量 - Javascript优化

当我偶然发现这个名为JSpeed的项目 - Javascript优化时,我正在浏览Google Code.

我注意到优化的一个是改变i++++i在for循环语句.

优化之前

for (i=0;i<1;i++) {}

for (var i = 0, j = 0; i < 1000000; i++, j++) {
    if (i == 4) {
        var tmp = i / 2;
    }

    if ((i % 2) == 0) {
        var tmp = i / 2;
        i++;
    }
}
var arr = new Array(1000000);
for (i = 0; i < arr.length; i++) {}
Run Code Online (Sandbox Code Playgroud)

优化后

for(var i=0;i<1;++i){}
for(var i=0,j=0;i<1000000;++i,++j){if(i==4){var tmp=i>>1;}
if((i&1)==0){var tmp=i>>1;i++;}}
var arr=new Array(1000000);for(var …
Run Code Online (Sandbox Code Playgroud)

javascript optimization increment

34
推荐指数
3
解决办法
3万
查看次数

为什么Array.forEach比Javascript中的for()循环慢?

任何人都可以告诉我什么是array.forEach比javascript中的循环慢的原因.有什么特别的原因吗?

这是我试图找到性能的代码.

// Populate the base array
    var arr = [];
    for (var i = 0; i < 1000; i++) {
      arr[i] = i;
    }

    function someFn(i) {
      return i * 3 * 8;
    }
Run Code Online (Sandbox Code Playgroud)

使用Array.forEach:

arr.forEach(function (item){
  someFn(item);
})
Run Code Online (Sandbox Code Playgroud)

使用for循环:

for (var i = 0, len = arr.length; i < len; i++) {
  someFn(arr[i]);
}
Run Code Online (Sandbox Code Playgroud)

我在测试跑步者上测试过它.结果如下: 在此输入图像描述

如您所见,Array.ForEach比for循环慢96%.提前致谢.

javascript arrays performance foreach

9
推荐指数
1
解决办法
1万
查看次数