title: JS中的作用域链是在什么时候建立的？
desc: var x 10function a console.logxfunction b var x 5 ab如代码，输出是10而不是5，是不是作用域链在执行前已经建立好了，所以a函数执行中在本环境拿不到x就直接去全局找了。求dalao解答！
topic: 前端开发
content: 我还是简单分析一下这个程序吧，虽然不敢保证理解完全正确.互相学习. 执行上下文 每当控制器到达ECMAScript可执行代码的时候，控制器就进入了一个执行上下文. 执行上下文是个抽象概念，标准中没有从技术实现上定义执行上下文的具体结构和类型. 就是一系列活动的执行上下文从逻辑上形成一个栈比较抽象. 栈底总是全局上下文，栈顶是当前活动的执行上下文. 当在不同的执行上下文间切换退出而进入新的执行上下文的时候，栈会被修改
answerer_tags: 专业补锅人