js基础 递归

一、定义
递归就是在函数内部调用自身。
递归的使用:需要有边界条件—>递归的结束

二、案例解析

//需要有边界条件结束递归
var i = 1;
function say(){
  //弹出警示框
  alert('从前有座山,山里有座庙,庙里有个老和尚,老和尚对小和尚说');
  //函数内部调用自身
   i++;
  if(i>3){  //当大于3的时候,终止函数
  return;
  };
  say();
};	
say();

三、相关练习
(1)定义一个函数,传递数字,计算这个数字的阶乘

//方案1:用递归方法
//!5  5*4*3*2*1
function jie(n){
  if(n==1){
    return 1;
  };
  return n*jie(n-1);
};
var res2 = jie(5);
console.log(res2);

//方案2:用for循环
function jie(){
  var sum = 1;
  for(var i=1;i<=5;i++){
    sum *= i;
  };
  return sum;
};
var res = jie(5);
console.log(res);

(2)使用递归函数,计算前n个数的和

function jie(n){
  if(n==1){
    return 1;
  };
  return n+jie(n-1);
};
var res2 = jie(5);
console.log(res2);

(3) 使用递归计算菲波那切数列的第n
 1 1 2 3 5 8 13 21 34 55

function fib(n){
//跳出条件:当n=1,或者n=2,返回1.
  if(n==1 || n==2){
    return 1;
  };
  return fib(n-1)+fib(n-2);
};
var res = fib(12);
console.log(res);
上一篇: js基础 函数作用域
下一篇: js基础 匿名函数
作者邮箱: 203328517@qq.com