js作用域和作用域链
什么是作用域
⼀个变量的作⽤域是程序源代码中定义这个变量的区域。对象, 函数也是变量。作用域有全局作用域和局部作用域。
全局作用域
全局对象下的属性作用域为全局,即网页中的所有脚本和函数均可使用。
局部作用域
函数作用域:在函数内部定义
es6块作用域:{}形成一个作用域
作用域链
作用域的嵌套形成一个作用域链。
变量的查找过程,是在当前作用域查找, 找不到则顺着作用域链逐级查找,直到最外层全局作用域为止。
作用域链的形成
function foo(a) {
var b = a;
return a + b;
}
foo(2);