在理解之前要先明白几个概念:
执行环境:定义了变量和函数有权访问的数据。
变量对象:执行环境里定义所有的变量和函数都在这个对象里,代码无法访问,但是解析器可以访问。
要弄懂一个东西肯定要先明白它有什么用?它什么时候会出现?它是什么?
作用域链用途:保证了执行环境对变量和函数的有序访问。
作用域链生成时间:代码执行时,会创建变量对象的作用域链。
什么是作用域链:作用域链的最前端始终都是当前执行环境的变量对象,下一个变量对象则来自下一个执行环境,以此类推。搜索过程始终都是从作用域链的最前端开始,然后逐级向后搜索,直到找到为止。如果找不到就报错。