3 个回答

例二多调用了一次箭头函数,这不很正常么,折算每次也就多 ~5*10^-8 ms

应该是函数本来有两个参数
Boolean没有规定参数数量
那个箭头有规定参数数量。所以会快。

var i = 0, len = 1000*1000, x = 2, y = true, z ='3.2';

var plus = function() {
  var r, len = 2;
  for (var i = 0 ;i < len; i++) {
      r += arguments[i];
  }
  return r;
};
//demo0
console.time('demo0');
for (i = 0 ;i < len; i++) {
    plus(x, y ,z);
}
console.timeEnd('demo0'); 
//demo1
var demo = function(a, b) {
    return plus(a, b);   
};
console.time('demo1');
for (i = 0 ;i < len; i++) {
    demo(x, y, z);
}
console.timeEnd('demo1'); 

clipboard.png

把填充数组的代码改为var arr1 = Array(10000000).fill(Math.random()+2);,你会发现不一样的结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题