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