美文网首页
递归、回调

递归、回调

作者: 放飞吧自我 | 来源:发表于2017-10-17 18:37 被阅读17次

递归函数:在函数的内部调用自己,递归函数应该给出口否则就会一直执行

// 递归在函数内部调用自身
    var i=10;
    function test(){
        i--;
        if (i<=0) {
            return;//出口
        }
         console.log(i)
    test()
    }
test();//打印结果9,8,7,6,5,4,3,2,1
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
//当执行到i-1时,则跳出本次test函数,返回上一个test函数执行下面的代码,代码执行完再跳出,再执行上一个test 函数,知道跳出第一个test函数
01.png

若函数不给出口

function test(){
        console.log("你好")
        test();
            
        }
        test();
//打印结果为你好,将会一直执行直到栈区的内存空间全部占满,之后出现:Uncaught RangeError: Maximum call stack size exceeded
//这句话的意思是最大调用栈大小超过

递归的小应用

// 快速排序 - 递归
        var i=0;
        var sum = 0;
        function add(num){
            
            var i=num--;
            sum += i;
            if (num<0) {
                return;
            }
            add(num);
            return sum;
        }
        var res = add(5);
        console.log(res);//res=15;

回调函数:把一个函数当做参数传给另一个函数,然后在另一个函数里面去调用这个函数。就叫做回调函数

// 应用场景:不知道什么时间应用,不知道应用什么函数
        function request(fn){
            console.log("开始网络请求")
            setTimeout(function(){
                console.log("得到请求数据");
                fn();
            },(Math.random()*3+1)*1000);
        }
        function show(){
            console.log("把数据展示在HTML上")
        }
        function showWomen(){
            console.log("把女人展示在HTML上")
        }
        function showCar(){
            console.log("把汽车展示在HTML上")
        }
        function showArmy(){
            console.log("把军事展示在HTML上")
        }

        request(show);
        request(showArmy);
        request(showWomen);
        request(showCar);

相关文章

  • 递归、回调

    递归函数:在函数的内部调用自己,递归函数应该给出口否则就会一直执行 若函数不给出口 递归的小应用 回调函数:把一个...

  • JS 回调函数(callback)和递归函数(recursive

    有很多人不理解回调函数和递归函数,我们在这里研究一下。(本文仅适合新人) 什么是回调函数,什么是递归函数 回调函数...

  • 递归 尾递归 迭代 回调

    小知识点 函数式编程有一个概念,叫做柯里化(currying),意思是将多参数的函数转换成单参数的形式 如果一个函...

  • 递归创建回调函数

    var arr = [500,1000,3000,200] ;var O = function(a,tt,s){c...

  • javascript回调函数、递归函数

    javascript回调函数、递归函数 一、回调函数 通过函数的指针来调用函数(把一个函数的指针作为另一个函数的参...

  • 异步递归:callBack 回调实现

  • JS-闭包、回调、递归

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

  • Promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数。 回调地狱 回调套回调套回调套回调套回调套回调套回调....

  • go 基本函数

    多返回值函数 递归 函数类型 type 回调函数 和多态(强大) 匿名函数 与 闭包 关键字defer(defer...

  • 回调、同步回调、异步回调

    异步消息的传递-回调机制 原文地址:https://www.ibm.com/developerworks/cn/l...

网友评论

      本文标题:递归、回调

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