【发布时间】:2022-10-08 20:45:40
【问题描述】:
'use stict';
function sumToRecursive(n) {
if (n === 1) {
return 1;
}
return n + sumToRecursive(n - 1);
}
function measureFunctionSpeed(f) {
let start = Date.now();
for (let i = 0; i <= 10; i++) {
f(i);
}
let end = Date.now();
return end - start;
}
console.log(measureFunctionSpeed(sumToRecursive));
当我尝试运行上面的代码时,出现“超出最大调用堆栈”错误,但我了解到最大调用堆栈限制约为 10,000。我的代码最多有 10 个递归级别,但会引发相同的错误。有谁知道为什么?
【问题讨论】:
-
0 !== 1(以及0以下的任何内容)因此第一个sumToRecursive()调用是一个无限“循环”
标签: javascript recursion