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,可以 看到函式執行的堆疊