One minute to understand recursion thought

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
//---------------------------js匿名函数-----------------------
 
                //匿名函数。
                //    (function (){
                //        console.log(1);
                //    })
 
                //调用方法:
                //1.直接调用
                (function (){
                    console.log(1);
                })();
 
                //2.绑定事件
                document.onclick = function () {
                    alert(1);
                }
 
                //3.定时器
                setInterval(function () {
                    console.log(444);
                },1000);
 
//----------------------递归--------------------------------------
                //递归是一种思想:类似于我们的计数器,开闭原则。
                //递归的实质就是函数自己调用自己。
                //递归注意点:递归必须有跳出条件,否则是死循环。
                var i = 1;
                fn();
                function fn(){
                    alert("从前有座山,山里有座庙...");
                    i++;
                    alert(i);
                    if(i<3){  //当i<3,才调用函数
                        fn();
                    }
                }
            //用递归求1+100和。
            alert(getSum(100));

            function getSum(n){
                //跳出条件
                if(n<1){
                    return 0;
                }
                //累加
                return n + getSum(n-1);
            }

            //    getSum(100) = 100 + 99 + 98+ ...+1+0;

            //    function getSum(n){
            //        //跳出条件
            //        if(n<1){
            //            return 0;
            //        }
            //        //累加
            //        return 100 + 99+...+1+0;
            //    }
//--------------------------回调函数--------------------------------
                //什么情况下,使用回调函数?
                //回调函数一般是用于定义一个规则来使用的。
                //规则的传递只能通过函数实现。通过变量无法达成。
                // 所以我们需要传递规则的时候必须使用回调函数。
                //执行函数就等于:函数名+();   整个函数+();
                //    fn();
                //    (function(){})()
                fn(test);
                //回调函数:函数作为参数进行传递和使用。
                function fn(demo){
                    demo();
                //        test();
                }
                function test(){
                    console.log("我是被测试的函数!");
                }
 
</script>
</body>
</html>


Author: Yuedeermeng
Source: CSDN
Original: https://blog.csdn.net/gyq04551/article/details/53242208

Guess you like

Origin blog.csdn.net/I_am_a_Bug_6/article/details/91417925