JS作用域、作用域链
1.全局作用域(Global Scope)
在代码中任何地方都能访问到的对象拥有全局作用域,一般来说有以下几种情形拥有全局作用域:
(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域。
(2)所有未定义直接赋值的变量自动声明为拥有全局作用域。
(3)所有window对象的属性拥有全局作用域
2.局部作用域(Local Scope)
和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数的内部,所有在一些地方也会看到有人把这种作用域称为函数作用域。
3.作用域链(Scope Chain)
函数被创建的时候,它的作用域链中会填入一个全局对象,该全局对象包含了所有全局变量。