递归函数(慎用)
- 在一个函数内,自己调用自己
- 逐层递进的过程,逐层回归的过程
递归函数书写
- 先写折返点
- 按照规则书写递进过程,不要忘记写return
eg: 求一个数的阶乘
function fn(n) {
// 折返点
if (n === 1) return 1
res = n * fn(n - 1)
// 递进过程
return res
}
fn(4)
console.log(res)
递归书写辗转相除最大公约数
function fn(max, min) {
// 折返点
if (max % min === 0) return min
// 递进过程
return fn(min, max % min)
}
var res = fn(27, 19)
console.log(res)