作用域
作用域 : 就是代码名字在某个范围内起作用和效果
目的 : 为了提高程序的可靠性,更重要的是减少命名冲突
es6之前作用域分两类
全局作用域
整个 script标签 或者一个单独的js文件
局部作用域
在函数内部 就是局部作用域 ;这个代码名字只在函数内部起效果和作用
块级作用域
在es6之后新增的块级作用域 , 现阶段没有块级作用域
变量的作用域
全局变量
在全局作用域下的变量,在任何位置都可以使用
用var声明
在全局作用域下,用var 声明的变量是全局变量
特殊 在函数内部不使用var声明的变量
局部变量
在局部作用域下声明的变量
局部变量只能在函数内部使用
函数内部用var声明
在函数内部用var声明的变量是局部变量
函数的形参
函数的形参实际是局部变量
执行效率
全局变量只有浏览器关闭的时候才会销毁,比较占内存
局部变量 当程序执行完毕后就会销毁,比较节约内存资源
作用域链 就近原则
- 只要是代码,就至少有一个作用域
- 函数内部的叫局部作用域
- 函数内部还有函数,那么这个作用域中就又产生了一个新的作用域
- 为内部函数可以访问外部函数变量,所以 可以用链式的方式查
所以 作用域链 就是内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值