JavaScript中的运行环境主要包括如下三种:
- 全局环境: 代码运行起来后首先会进入全局环境
- 函数环境: 当函数被调用执行时,会进入当前函数中执行环境
- eval环境: 不建议使用.
这个Demo演示执行上下文的运行状况
//demo.js var color = blue function changeColor(){ var anotherColor = 'red' function swapColor(){ var tmpColor = anotherColor anotherColor = color color = tempColor } swapColor() } changeColor()
第一步:全局上下文入栈javascript
第二步:遇到changeColor()==>ChangeColor EC的上下文入栈java
第三步:ChangeColor EC的上下文入栈后,swapColor() EC入栈浏览器
第四步:因为swapColor() EC入栈后,没有其余执行上下文产生,swapColor() EC弹栈函数
第五步:ChangeColor EC弹栈spa
最后:全局上下文会在浏览器关闭窗口后弹栈code
关键语句:ip
代码运行起来后首先会进入全局环境;io
函数执行时才会建立执行上下文;function