递归到底是怎么执行的

  • 递归就是函数内部调用自己的过程,它本质就是一个循环
    还是举个阶乘的例子:
factorial(5);
function factorial(n) {
    if (n == 1) {
        return 1;
    }
    return n * factorial(n-1);
}

<!--执行过程看这里:
<!--    5 * factorial(4)    -->
<!--    4 * factorial(3)    -->
<!--    3 * factorial(2)    -->
<!--    2 * factorial(1)    -->
<!--    最后当 n = 1 的时候,得到 factorial(1) = 1
        factorial(2) = 2 * factorial(1) = 2
        factorial(3) = 3 * factorial(2) = 6
        factorial(4) = 4 * factorial(3) = 24
        5 * factorial(4) = 120
-->

<!--看完这里肯定就能明白递归到底是怎么执行的了-->
<!--递归就是先执行完的最后返回的过程-->

再来看一个简单的例子:

fn(0);
function fn(nub){
    if(nub < 5){
        fn(nub+1);
    }
    console.log(nub);
}

<!--结果为:5 4 3 2 1 0 ;
<!--也是先执行完的最后返回的过程-->

转载于:https://www.cnblogs.com/Ivy-s/p/6964851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值