js高階 執行上下文棧

2022-10-08 21:24:22 字數 602 閱讀 6697

就是用來存全域性上下文物件和函式上下文物件的棧容器。

在全域性**執行之前,js引擎就會建立乙個棧容器來儲存管理所有的執行上下文物件。

在全域性執行上下文(window)確定後,將其新增到棧中(壓棧)。

在函式執行上下文建立後,將其新增到棧中壓棧)。

在當前函式執行完後,將棧頂的物件移除(出棧)。

當所有的**執行完後,棧中只剩下window。

每次執行的物件總是棧頂的那個物件,如果乙個棧容器裡存著多個物件,棧底的總是全域性上下文物件,因為他是第乙個被建立壓棧的,在它上面如果有多個物件,那麼這些都是函式上下文物件,而且是巢狀呼叫會產生多個函式上下文物件,一般情況乙個乙個呼叫函式是不會產生多個函式上下文物件的,如果是多個函式上下文物件,要最裡面的函式呼叫完才會結束外面的函式。

JS高階(6) 執行上下文與執行上下文棧

一 變數提公升和函式提公升 變數宣告提公升 函式宣告提公升 面試題 輸出 undefined undefined 變數提公升 fn2 可呼叫 函式提公升 fn3 不能 變數提公升 二 執行上下文 分類 根據位置分 全域性執行上下文 開始執行全域性 函式執行上下文 開始執行函式體 三 執行上下文棧 在...

js執行上下文與執行上下文棧

在了解js的執行上下文物件與執行上下文棧之前,我們要先了解兩個概念 即變數提公升跟函式提公升 變數提公升 通過var定義的變數,在定義語句之前我們就可以直接訪問到,不過它的值是undefined 函式提公升 通過function定義的函式,在函式定義語句前,我們就可以直接呼叫 變數提公升與函式提公升...

JS 執行上下文棧

繼續上文的內容。執行全域性 時,會產生乙個執行上下文環境,每次呼叫函式都又會產生執行上下文環境。當函式呼叫完成時,這個上下文環境以及其中的資料都會被消除,再重新回到全域性上下文環境。處於活動狀態的執行上下文環境只有乙個。其實這是乙個壓棧出棧的過程 執行上下文棧。如下圖 可根據以下 來詳細介紹上下文棧...