【五】变量的作用域、递归函数

149 阅读1分钟

01 变量的作用域

概念:变量的有效范围,简单来说,就是变量的使用区间,变量在什么范围可以调用执行

分类:

【1】全局作用域----->全局变量

在script标签内部声明的变量,就是全局作用域的变量

全局作用域声明的变量,在任何位置都可以使用,在函数内也可以调用

【2】局部(函数)作用域------>局部变量

定义在函数内的变量/形参

只能在函数内部调用执行,不能在函数外部直接调用

02 函数中的变量

【1】变量的调用(访问)原则----就近原则

先在自己当前的作用域内查找变量,有就直接调用 → 没有找到,向上层(父级)作用域查找,找到了就调用 → 没有找到,继续向上层作用域查找,一直查找到全局作用域,如果找到就调用,找不到会直接报错

👍注意:永远不会调用后代程序中的变量

【2】变量的赋值原则----就近原则

首先,自己有这个变量,就对自己的变量赋值

其次,自己没有这个变量,就对估计程序的变量赋值

最后,父级程序没有这个变量,对全局变量赋值

如果都没有这个变量,那么赋值语句升级为变量声明语句,在函数内部声明一个全局变量,在函数外可以调用这个变量

03 递归函数

条件: 1、一个函数在程序内部调用了自身

2、在合适的时候结束调用(递归),否则就是死循环

适用于:计算量较小的程序,计算量大的不推荐

<script> 
    function fun(n) { 
        if (n === 1) return 1;
        return n * fun(n - 1); //1
        } 
        var myFun = fun(5); 
        console.log(myFun); 
</script>