javascript的作用域链
什么是作用域链?
1、作用域链是一个数组
2、作用域链是控制变量作用域的有序访问的js内部实现
3、作用域链储存在函数的执行上下文中,存储执行环境中的VO或者AO
4、当前函数的作用域对象都是在最前端的,全局在最末端
5、变量的搜索是从作用域的最前端开始逐级搜索,直到全局作用域。中间找到了就停止,在全局作用域还找不到就报错。
接下看一段代码就知道了:
let a = 1, b = 2
let glo = f(a, b)
console.log(glo)
function f(a, b) {
let v = 'parent'
function f1(c) {
let vchild = 'child'
return c + vchild
}
return a + b + v + f1(a)
}
接下来我们用图解方式表示这段代码的作用域链:

这样我们就很清晰的看这段代码的作用域的内部结构

浙公网安备 33010602011771号