当试图将这个简单的阶乘函数应用于负数时,为什么maximum call stack size exceeded
?
function factorial(n) {
if (n == 0) {
return 1
}
return n * factorial(n - 1)
}
我理解阶乘函数是针对非负整数的,但我想知道在调用此函数时,内部/在JavaScript引擎中发生了什么。 -1
。
它无限运行,因为(n == 0)不符合
如果你传递一个负数
return n * factorial(n - 1)
以递归方式调用具有更多负数的阶乘函数,从而不满足(n == 0)条件