递归函数在 JavaScript 中是一种调用自身的方法,它允许函数重复执行,直至满足递归结束条件。递归函数的调用过程包括:函数被首次调用并传递参数值。检查递归结束条件是否为 true,若为 true 则返回结果。若递归结束条件不为 true,则再次调用自身,传递新的参数值。重复步骤 2 和 3,直至满足递归结束条件。返回结果,一层一层返回直至达到最初的函数调用。

JS 递归函数的调用
在 JavaScript 中,递归函数是一种调用自身的方法,它允许函数重复执行,直至达到某些条件。递归函数的调用过程如下:
- 函数被首次调用:当函数第一次被调用时,它会将参数值传递给自身,并执行函数体。
- 检查递归结束条件:在函数体内,首先检查递归结束条件是否为 true。如果为 true,则意味着函数执行完成,返回结果。
- 执行递归:如果递归结束条件不为 true,则函数会再次调用自身,传递新的参数值。
- 重复步骤 2 和 3:新的函数调用将继续执行步骤 2 和 3,直至满足递归结束条件。
- 返回结果:当递归结束条件满足时,函数会一层一层返回结果,直至达到最初的函数调用。
示例:
考虑以下用于求阶乘的递归函数:
function factorial(num) {
if (num === 0) {
return 1;
} else {
return num * factorial(num - 1);
}
}当调用 factorial(5) 时,该函数会按照以下步骤执行:
- 第一次调用:
factorial(5) - 检查递归结束条件:
num !== 0为 true,所以执行递归。 - 第二次调用:
factorial(4) - 检查递归结束条件:
num !== 0为 true,所以执行递归。 - 第三次调用:
factorial(3) - 检查递归结束条件:
num !== 0为 true,所以执行递归。 - 第四次调用:
factorial(2) - 检查递归结束条件:
num !== 0为 true,所以执行递归。 - 第五次调用:
factorial(1) - 检查递归结束条件:
num !== 0为 true,所以执行递归。 - 第六次调用:
factorial(0) - 检查递归结束条件:
num === 0为 true,返回 1。 - 第五次调用:
factorial(1)返回 1 * 1 = 1。 - 第四次调用:
factorial(2)返回 2 * 1 = 2。 - 第三次调用:
factorial(3)返回 3 * 2 = 6。 - 第二次调用:
factorial(4)返回 4 * 6 = 24。 - 第一次调用:
factorial(5)返回 5 * 24 = 120。
因此,factorial(5) 返回 120,即 5 的阶乘。










