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)
}

接下来我们用图解方式表示这段代码的作用域链:

 

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

 

posted @ 2020-06-01 12:49  菜鸡前端  阅读(159)  评论(0)    收藏  举报