一、递归函数
递归是一种在程序设计语言里面被广泛使用的算法,通过直接或间接来调用自身,将大型的复杂问题层层转化为一个与原问题相似但规模较小的问题来求解,这就是递归。而在JavaScript中,函数直接或间接的调用自己,则该函数便称为递归函数。
二、使用递归函数的条件
一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
如果说没有边界条件的话就可能出现死循环,比如:
function fn(){
alert(41);
fn();
}
fn();
他会一直弹出
三、案例
function fn1(n){
if(n<=1){
return 1;
}else{
return n+fn1(n-1)
}
}
function fn2(n){
if(n<=1){
return 1;
}else{
return n*fn1(n-1) //fn1(4)=10
}
}
console.log(fn2(5)) //50
// n=1*2*3*4*...*(n-1)*n;
function fn(n){
if(n===1){
return 1
}
return fn(n-1)*n
}
// console.log(fn(10));//3628800
console.log(fn(4));//24