Javascript中什么更快?循环或重复的函数调用
What is faster in Javascript? A loop or repeated function call?
这两个位中哪一个执行(计数)更快?
var i = 0;
while(true){
i++;
}
或
var i = 0;
inc = function(){
i++;
inc();
}
如果循环的代码/函数变长,首选的方式会改变吗?
这只会导致堆栈溢出,因为递归没有结束条件:
var i = 0;
inc = function(){
i++;
inc();
}
对于一个足够好的i
,这将比标准循环失败得更快
更普遍地说,调用函数的开销比循环要大。当函数有助于代码的可重用性或可读性时,请创建它。循环很快。
如果迭代次数很少,那也没什么大不了的。调用函数会有更多的开销,但对于短循环来说,这并没有太大的区别。
第二种方法受到堆栈大小的限制。如果迭代次数过多,它将耗尽堆栈空间并崩溃。
因此,第一种方法会运行得更快,但整个问题都没有意义,因为第二种方法在一个足够长的循环中崩溃的风险很大,速度会产生影响。
相关文章:
- 如何在Javascript函数调用中循环变量
- 从index.html调用函数,该函数无限循环
- Javascript中什么更快?循环或重复的函数调用
- 如何验证for循环是否完成了node js中的所有迭代,循环是否包含带回调的函数调用
- 循环变量作为异步函数调用中的参数
- 调用异步函数的循环
- 使用ajax调用循环函数
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- ng-禁用函数调用在 ng-repeat 下处于无限循环中
- 当我引入从函数调用传递的变量时,For 循环无法正常工作
- 在 for 循环中返回函数调用的值
- 如何确保将正确的参数传递给循环中声明的函数调用
- 函数调用中的循环计数器可视性
- 调用循环中的函数;未定义不是函数“;
- 在循环中生成延时函数调用的列表
- 只进行最后一次迭代的循环内函数调用
- 在函数调用中中断或继续循环
- 当调用一个使用回调的函数(在循环中)时,如何传入变量并使它们不变
- 将值传递给循环中动态创建的函数调用
- 在for循环中的异步函数调用中有条件地执行回调