JavaScript作用域:就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性更重要的是减少命名冲突。
js的作用域(es6)之前:全局作用域 局部作用域
全局作用域:整个script标签或者是一个单独的js文件
局部作用域(函数作用域):在函数内部就是局部作用域 这个代码的名字只在函数的内部起效果和作用
全局变量:全局作用域下都可以使用
注意:如果在函数内部没有声明,直接赋值的变量也是全局变量
局部变量:在局部作用域下的变量 在函数内部的变量就是局部变量
注意:函数的形参也是一个局部变量
从执行效率来看全局变量和局部变量
全局变量只有浏览器关闭的时候才会销毁(比较占内存)
局部变量当我们程序执行完毕就会销毁,比较节约内存资源
es6新增块级作用域 { }
作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值 这种结构我们称为作用域链 (就近原则)