作用域和作用域链
作用域:就是变量和函数的可访问范围,在js中,分为全局作用域和函数(局部)作用域
全局作用域:代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。
函数(局部)作用域:在function声明的变量
ES6中新增了块级作用域,let声明的变量只能在块级作用域里访问,有“暂时性死区”的特性
作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突
作用域链:
变量取值是在创建这个变量的函数的作用域中取值。但是如果在当前作用域中没有查到值,
就会向上级作用域去查,直到查到全局作用域,查找过程形成的链条就叫做作用域链