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

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

你可能感兴趣的:(javascript,开发语言,ecmascript)