递归函数、全局变量和局部变量

405 阅读1分钟

什么是递归函数

是指函数直接或间接调用自身函数本身,则该函数为递归函数

使用递归函数必须要符合两个条件

1、 自己调用自己  
2、必须有一个终止处理或计算的出口,让函数结束调用函数自身

计算一个数的阶乘

       function fun1(n){
            if(n == 1){
                return 1;   //定义结束位置  =>  当n=1时,返回值
            }
            // 4! =>  4 * 3! =>  4*3*2!  =>  4*3*2*1!
            return (n * fun1(n-1));  
        }

        var num = fun1(4);
        console.log(num);

全局变量和局部变量

1.全局变量

定义在函数体外的变量,供全局使用,在函数体内找不到该变量时,会向父级找,父级没有时,会向函数体外找

全局变量

        var a = 10;  //定义在函数体外的变量a
        var b = 12;  //定义在函数体外的变量b
        function fun1() {
            document.write('a+b=', a + b);
        }
        fun1();


        function fun2() {
            document.write('a+b=', a + b);
        }
        fun2();

运行结果

由运行结果可看出,定义在函数体外的变量均可在fun1(),fun2()中使用,说明全局变量可以反复使用执行

33.jpg

局部变量

定义在函数体内的变量,只能在定义的函数内使用;

案列

        function fun1(){
            var a = 10;  //定义在fun1()内的变量a
            var b = 12;  //定义在fun1()内的变量b
            document.write('a+b=',a+b);
        }
        fun1();  

        
        function fun2(){
            document.write('a+b=',a+b);
        }
        fun2();

运行结果

由执行结果可看出fun1()可正常执行,而fun2()会出现未定义的报错情况,说明在fun1()内定义的变量不能在fun2()内使用

11.jpg