算法图解 - 第3章 递归

# 递归:自己调用自己,无限循环 。为此需要条件告诉它何时停止递归。

- 包含 基线条件 和 递归条件
- 基线条件结束递归
- 递归条件调用自己

eg:在大盒子里的某个盒子里找钥匙,是盒子就继续找,直到找到钥匙

# 栈
eg: 无口瓶子,一端压入,一端弹出

#总结

- 递归指的是调用自己的函数。
- 每个递归函数都有两个条件:基线条件和递归条件。
- 栈有两种操作:压入和弹出。
- 所有函数调用都进入调用栈。
- 调用栈可能很长,这将占用大量的内存。

function countdown(time) {
        setTimeout(function(){
            console.log(time);
            if(time <= 0){  //基线条件
                document.getElementById('test').innerHTML = '倒计时结束';
                return;
            }else{ //递归
                time--;
                document.getElementById('test').innerHTML = '倒计时:'+time;
                countdown(time);
            }
        },1000);
    }
    countdown(30);

 

posted @ 2020-06-04 17:34  邪儿莫  阅读(218)  评论(0编辑  收藏  举报