遞迴執行上下文和堆疊

2021-10-19 03:00:54 字數 533 閱讀 1149

我們接著昨天的遞迴繼續講述關於遞迴的執行上下文,以及堆疊。

現在,讓我們檢查一下遞迴呼叫是如何工作的。為此,我們將深入研究功能。

有關正在執行的功能的執行過程的資訊儲存在其執行上下文中。

執行上下文是乙個內部資料結構,它包含關於函式執行的詳細資訊:控制流現在的位置、當前變數、該變數的值(我們在這裡不使用它)和很少的其他內部細節

乙個函式呼叫只有乙個與之相關的執行上下文。

當乙個函式進行巢狀呼叫時,會發生以下情況:

讓我們看看pow(2,3)呼叫過程中發生了什麼。

在呼叫pow(2,3)的開始,執行上下文將儲存變數:x = 2, n = 3,執行流在函式的第1行。

我們可以把它概括為:

context:  call: pow(2, 3)
這時函式開始執行,如果n == 1是假的,所以流繼續進入if的第二個分支:

function pow(x, n)  else {

re

堆疊上下文

什麼是堆疊順序 什麼是堆疊上下文 參考 只有定位元素才能實際上設定z index z index 0 存在兩種情況,取決於父元素的z index是否為auto background border 塊級浮動 內聯z index 0 z index 如果是兄弟元素重疊,那麼後面的蓋在前面的身上。可以理解...

提公升 執行上下文和執行上下文棧

提公升 1.變數宣告提公升 通過var定義 宣告 的變數,在之前就可以直接使用,但不會被賦值 值 undefined 2.函式宣告提公升 通過function宣告的函式,在之前就可以直接呼叫 函式表示式不能在定義前呼叫 值 函式定義 物件 3.問題 變數提公升和函式提公升怎麼產生的?變數提公升簡單理...

執行上下文

1.分類 位置 全域性 函式 區域性 2.全域性執行上下文 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 w...