1.认识递归
递归通常的表现是函数调用自身; 注意:递归要有停止条件。
2.阶乘中的递归
数n的阶乘,定义为n!,表示1到n的整数的乘积。
2.1迭代阶乘
function factorialIterative(number) {
if (number<0) {
return undefined;
}
let total = 1;
for (let n = number; n>1; n--) {
total = total * n;
}
return total;
}
console.log(factorialIterative(5));
2.2 递归阶乘
function factorial(n) {
if (n === 1 || n === 0) {
return 1;
}
return n * factorial(n - 1);
}
console.log(factorial(5));
使用递归时,会调用栈; 注意:调用栈有大小限制,防止爆栈出错。