美文网首页
JS-闭包、回调、递归

JS-闭包、回调、递归

作者: 大大的小小小心愿 | 来源:发表于2017-10-22 14:11 被阅读0次

    一、闭包
    函数内部创建个函数形成闭包
    闭包的应用
    二、回调
    在一个函数中,把另一个函数的函数名当一个参数,进行调用。

    function a(){
            console.log("我是函数a");
        }
        function b(funa){
            funa();
        }
        b(a);
    

    利用回调函数,在死循环中模拟定时器

    function myTime(fun,time){
            var date = new Date;
            for(;;){
                var date2 = new Date;
                if(date2 - date >= time){
                    break;
                }
            }
        }
    
        myTime(function(){"time时间后打印了我"},1000);
    

    三、递归
    1、 函数内部调用函数本身(死循环,一般给一个条件,让其退出死循环)

      function test(){
         test();
      }
    

    2、递归面试题

    var i = 10;
      function test(){
        var a = i--;
        if(i <= 0){
            return;
        }
        console.log(a);
        test();
    }
    test();  //打印结果 10 9 8 7 6 5 4 3 2
    
    var i = 10;
        function test(){
            var a = i--;  
            if(i < 0){
                return;  
            }
            test();  
            console.log(a); 
        }
    test();        //结果打印出   1 2 3 4 5 6 7 8 9 10
    

    思路:递归执行完后,再return 上一级、console.log a的值

    a.png

    2、利用递归实现数的累加

    function add(num){
    if(num == 1){
        return 1;
    }
    return num + add(num -1);
    }
    console.log(add(3));

    相关文章

      网友评论

          本文标题:JS-闭包、回调、递归

          本文链接:https://www.haomeiwen.com/subject/gjvjuxtx.html