前端基礎(chǔ):JS調(diào)試(函數(shù)調(diào)用棧)

當(dāng)一個函數(shù)進(jìn)行嵌套調(diào)用時:
- 當(dāng)前函數(shù)被暫停
- 當(dāng)前函數(shù)所在上下文(作用域的變量)保存在特殊數(shù)據(jù)結(jié)構(gòu)(執(zhí)行上下文堆棧)中
- JS調(diào)試器中 Call Stack、Scope 可以查看
- 科普1,從數(shù)據(jù)結(jié)構(gòu)的角度:堆棧,簡稱棧(先進(jìn)后出);而堆又是另外類似于完全二叉樹的數(shù)據(jù)結(jié)
- 科普2,從系統(tǒng)角度:堆、棧是真實(shí)的物理內(nèi)存,一般基礎(chǔ)數(shù)據(jù)類型數(shù)據(jù)存儲在棧內(nèi)存,引用數(shù)據(jù)類型數(shù)據(jù)存儲在堆內(nèi)存
- 執(zhí)行嵌套調(diào)用
- 嵌套調(diào)用結(jié)束后,從堆棧中恢復(fù)之前的執(zhí)行上下文,并從停止的位置恢復(fù)外部函數(shù)。
閉包調(diào)試補(bǔ)充截圖:

標(biāo)簽: