'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 個遞回級別,但會引發相同的錯誤。有誰知道為什么?
執行結果截圖
uj5u.com熱心網友回復:
回圈的第一次迭代將函式0作為提供i,基本情況未涵蓋。
您可以從開始for回圈i= 1或將基本案例檢查更改為if (n <= 1) {}以覆寫0案例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513463.html
標籤:javascript递归
