什么是Javascript更快?一个循环或重复的函数调用?

Bal*_*nat 3 javascript performance

这两位中的哪一位执行(计数)更快?

var i = 0;
while(true){
    i++;
}
Run Code Online (Sandbox Code Playgroud)

要么

var i = 0;
inc = function(){
    i++;
    inc();
}
Run Code Online (Sandbox Code Playgroud)

如果循环代码/函数变长,首选方式是否会更改?

Den*_*ret 7

这只会给你一个堆栈溢出,因为递归没有结束条件:

var i = 0;
inc = function(){
    i++;
    inc();
}
Run Code Online (Sandbox Code Playgroud)

对于一个足够好的i,这将比标准循环更快失败.

更一般地说,调用函数的开销大于循环.在帮助您的代码重用或可读时帮助您创建一个函数.循环很快.