Js系列三 執行上下文

2021-09-08 23:55:33 字數 563 閱讀 5136

js**在執行的時候會進入乙個特定的環境中,這個環境被稱為執行上下文。在js中執行環境主要包括以下三種情況

(1)全域性環境既js**執行時首先進入的環境。

(2)函式環境:函式執行時會進入當前函式的環境執行**。

由此我們知道在js程式執行過程中必然會出現多個執行環境(執行上下文)。js引擎以函式呼叫棧的方式來處理,函式呼叫棧規定了js**的執行順序。棧底永遠都是全域性上下文,棧頂則是當前正在執行的上下文(具體看js系列一)。當執行中遇到以上情況時,js會建立乙個執行上下文並放入函式呼叫棧中,處於棧頂的上下文執行完畢後會自動出棧。

為了更好的理解這個過程我們通過幾個實列來理解函式呼叫棧的執行規則。

一,例項一。

//demo1

var color='blue';

function changecolor()--->執行:--->執行完畢後等待**->

我們從執行上下文的生命週期中可以看到他的重要性,其中涉及了變數物件,作用域鏈,this指向等許多重要但並不太容易搞清楚的概念,而理解這這些概念有助於我們真正理解js**的執行機制。

下一章我們將來具體講下變數物件

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

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

JS執行上下文

執行上下文,即context,也不知道是誰翻譯的,不少的文獻 書籍用的都是這個詞。還記得第一次接觸這個詞時的惆悵 迷惘 不知所措,扶了扶眼鏡,翻開大辭典,還是翻譯成環境比較接地氣。js執行上下文,即js的執行環境。當我們的 執行時,會進入到不同的執行上下文,即不同的環境。在不同的環境中,有著不同的 ...

JS學習系列 05 執行上下文

在我們前面理解了作用域之後,作用域鏈 這個概念就產生了。那麼作用域鏈是什麼意思,它又是怎麼形成的,跟哪些概念有關係,這就是我接下來幾章想和大家 的內容 執行上下文 變數物件和作用域鏈。根據順序我們也可以看出來,想要理解作用域鏈,執行上下文是我們碰到的第乙個坎。這一章我們就來討論一下到底什麼是執行上下...