阶乘函数运行错误:超过了最大调用堆栈大小
factorial function running error : Maximum call stack size exceeded
我用javascript做了一个计算器。我想添加阶乘到它,但chrome对我说:最大调用堆栈大小超过。这些是代码的一部分,我确定问题出在这些代码上,而不是其他的
function fac(firstNum){
firstNum=Number(document.getElementById('result').value);
if(firstNum==0){
document.getElementById('result').value = 1;
}
var a = firstNum*fac(firstNum-1);
document.getElementById('result').value = a;
}
和using功能到switch case
case 'n!':
document.getElementById('result').value = fac();
break;
您需要将阶乘算法与UI代码分开。
function factorial(n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
然后使用此代码从UI字段中检索号码,例如factInput
,并放置结果字段,例如factResult
:
var number = document.getElementById('factInput').value;
document.getElementById('factResult').value = factorial(number);
HTH,布莱恩
相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 超过了async.detect最大调用堆栈大小
- 如何远程检查JavaScript应用程序的函数调用堆栈
- 超过了最大调用堆栈大小,循环无限
- 超过了最大调用堆栈大小.递归标签
- 日志:未捕获的范围错误:超过了最大调用堆栈大小
- 未捕获的范围错误:setTimeout()超过了最大调用堆栈大小
- JavaFX+WebView/Javascript:setTimeOut不起作用调用堆栈来自Java
- JavaScript继承:未捕获的范围错误:超过了最大调用堆栈大小
- 使用$cookies和$stateChangeStart检查sessionID是否超过了最大调用堆栈
- jQuery捕获"RangeError:超过了最大调用堆栈大小“;
- 设置这个.RangeError:超过了最大调用堆栈大小
- 收到“范围错误: 超出最大调用堆栈大小”错误
- 递归 - 测试最大堆栈大小时,调用堆栈无法弹出
- 轮询 ajax 函数超出调用堆栈
- Chrome RangeError:使用jQuery$.map时超过了最大调用堆栈大小
- 要求JS 2.1.9引起“;最大调用堆栈"使用Grunt时出错
- Chrome/jQuery未捕获范围错误:超过了最大调用堆栈大小(函数循环)
- 超过了最大调用堆栈大小-没有明显的递归
- 警告:字体加载过程中出错:轨道上的PDFJS超过了最大调用堆栈大小错误