作⽤域
作⽤域,即变量和函数⽣效的区域或集合
换句话说,作⽤域决定了代码区块中变量和其他资源的可⻅性
将作⽤域分成:
全局作⽤域
函数作⽤域
块级作⽤域
全局作⽤域:
任何不在函数中或是⼤括号中声明的变量,都是在全局作⽤域下,全局作⽤域下声明的变量可以在程序的任意位置访问
函数作⽤域:
函数作⽤域也叫局部作⽤域,如果⼀个变量是在函数内部声明的它就在⼀个函数作⽤域下⾯。这些变量只能在函数内部访问,不能在函数以外去访问
块级作⽤域:
ES6引⼊了 let 和 const 关键字,和 var 关键字不同,在⼤括号中使⽤ let 和 const 声明的变量存在于块级作⽤域中。在⼤括号之外不能访问这些变量
作⽤域链:
当在 Javascript 中使⽤⼀个变量的时候,⾸先 Javascript 引擎会尝试在当前作⽤域下去寻找该变
量,如果没找到,再到它的上层作⽤域寻找,以此类推直到找到该变量或是已经到了全局作⽤域
如果在全局作⽤域⾥仍然找不到该变量,它就会在全局范围内隐式声明该变量或是直接报错