Js execute context 、stack

  • 350
  • 0
  • Js
  • 2020-01-07

execute context 環境 : 函式運行時,才會有execute context,宣告時不會執行

    創造環境

    執行

execute stack 堆疊

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

context 環境

    限制作用域、this

global 全域

    os 為 window : window物件

    os 為 nodejs : global物件

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

execute context 下的創造環境、執行流程 ,

概念與此篇相同 : https://dotblogs.com.tw/blog/preview/75b69317-c50b-4d54-b9ec-abef0011c750

在memory 上 建立 : key 位置 與 value 位置

Example : var a = 1;  變數

1. 創造環境時           key : 變數a , value : undefined

2. 執行時                  key : 變數a , value : 1

Example : var b = function () {};  函式

1. 創造環境時           key : 函式b , value : function () {}  已給內容設定了,與變數不同在於,創造就給於值了

疑問 : 那函式內的變數呢?  依照變數規則走

        1. 創造環境時           key : 變數a , value : undefined

        2. 執行時                  key : 變數a , value : 1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

stack 堆疊

1. 網頁開啟,會先執行全域環境 -> 至堆疊上

2. 執行跑的function --> 至全域環境堆疊上

3.執行跑完的function --> 離開全域環境堆疊上

4.回到執行全域環境

function a () {}

於chorme F12下的Sources

右方call stack,可以 看到函式執行的堆疊