1.什么是递归?

  递归,简单的来讲,就是自己调用自己,在函数体内执行这个函数自己,这就是递归

  注:  (1)递归函数,每次执行自己,都相当于创建一个当前函数的副本放入到堆中然后执行,知道满足一定条件时,,才一层一层的向前返回. 因此递归函数一定要有结束条件,否则就会造成 堆栈上限溢出 。

 

例1:

 

var a=1;
    fn();
    function fn(){
      if(a>5)return;
      console.log("a"+a);
          a++;
          fn();
          console.log("b");
        }

 执行顺序:

javascript尾递归 javascript之递归_递归函数

打印结果:

javascript尾递归 javascript之递归_JavaScript_02

 

 

 

 例2:

function getSum(num){
            if(num===1) return 1;
            return num+getSum(num-1); 
        }
        var sum=getSum(5);
        console.log(sum);

 

 打印结果:

javascript尾递归 javascript之递归_js_03