两种作用域
js 的作用域就是:代码名字在某个范围内起作用和效果
目的是:提高程序的可靠性,减少命名冲突
- js的作用域(es6之前)—全局作用域、、、局部作用域
- 全局作用域:
整个script 标签 或者一个单独的 js 文件 - 局部作用域:在函数内部—函数作用域
函数的名字只在函数内部起作用
两个变量的作用域
- 全局变量 和 局部变量
- 全局变量:在全局作用域下的变量,全局下都可以使用
- 局部变量:函数 内部的变量
- 全局变量----------只有浏览器关闭的时候才会销毁,比较占用内存资源
- 局部变量----------程序执行完毕就会销毁,比较节约内存资源
js 没有块级作用域
js 是在 es6 的时候新增的块级作用域
块级作用域就是 {} 这种花括号包起来声明的作用域,
没有块级作用域的话,花括号里面的函数就能在外面被调用
作用域链
说白了就是套娃
内部函数访问外部函数的变量,采取的是链式查找的方式来决定的取那个值,,这种结构称为 作用域链----就近原则