javascript-作用域

作用域

通常来说,就是代码名字(变量)在某个范围内起作用和效果
目的:为了提高程序的可靠性,避免命名冲突
 
js作用域(es6)之前:全局作用域 局部作用域
 
 
<script>
//全局作用域:整个script标签 或者一个单独的js文件
var num = 10;
console.log(num);
//局部作用域(函数作用域) 在函数内部就是局部作用域 这个代码的名字只在函数内部起效果
function fn() {
//局部作用域
var num = 20;
console.log(num);
}
fn();

</script>

 

注:如果在函数内部没有声明直接赋值的变量也属于全局变量
注:函数的形参也是局部变量。
从执行效率来看
  1. 全局变量只有浏览器关闭的时候才会销毁,比较占用内存
  2. 局部变量,当我们程序执行完毕之后就会销毁,节约资源
作用域链
根据内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据被内部函数访问,就称为作用域链。
 //作用域链:内部函数访问外部函数的变量,采用的是链式查找,来决定
        var num =10;
        function fn(){//外部函数
            var num =20;

            function fun(){//内部函数
                console.log(num);
            }
        }

 

 
站在目标 出发,一层一层往外查找 
posted @ 2022-03-13 15:02  终究还是避免不了遗憾  阅读(25)  评论(0编辑  收藏  举报