js 递归

调用自身函数称为递归函数

 function fn(){
        fn()
    }
    fn()

递归的作用和循环是基本一样的
编写递归函数,一定要包含两个条件
1.基线条件
2.递归条件

运用递归的实例
1.使用递归让延迟器有定时器的效果

  function timer() {
        setTimeout(() => {
            console.log(1)
            // 1s后重新调用自身
            timer()
        }, 1000)
    }
    timer()

2.使用递归求任意数的乘阶

 function fun(num) { 
        // 如果num为1直接返回
        if(num == 1){
            return 1
        }
        // 我们利用递归
        return fun(num - 1) * num
        // 如何执行的呢?我们用num = 3来举例
        // 当num = 3时 fun(3 - 1) * 3
        // 然后递归继续调用num = 2 fun(2 - 1) * 2
        // 然后递归继续调用num = 1 因为我们上面判断了如果num == 1
        // return 1 终止
    }
    let result = fun(5)
    console.log(result) // 120

3.使用递归斐波那契数列

function func(num) {
			// num == 0 直接返回0
			if(num == 0){
				return 0
			// num == 1 直接返回1
			}else if(num == 1){
				return 1
			}
			//前2个数想加 (num - 1)+(num - 2) 
			return func(num - 1) + func(num - 2)
		}
		let result = func(10)
		console.log(result) //55

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值