欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中執(zhí)行上下文和執(zhí)行棧

 更新時間:2022年09月20日 09:20:28   作者:北丶故城  
這篇文章主要介紹了JavaScript中執(zhí)行上下文和執(zhí)行棧,執(zhí)行上下文是評估和執(zhí)行JavaScript代碼的環(huán)境的抽象概念,更多相關(guān)介紹,感興趣的朋友可以參考一下

執(zhí)行上下文?

執(zhí)行上下文是評估和執(zhí)行JavaScript代碼的環(huán)境的抽象概念。個人理解:js執(zhí)行的先后順序/函數(shù)或變量執(zhí)行的作用域等。

執(zhí)行上下文的類型

  • 全局執(zhí)行上下文任何不在函數(shù)內(nèi)部的代碼都在全局上下文中。它會執(zhí)行兩件事:創(chuàng)建全局對象Windows(瀏覽器環(huán)境下),設(shè)置this的值等于這個全局對象。一個程序中只會有一個全局執(zhí)行上下文。
  • 函數(shù)執(zhí)行上下文每當一個函數(shù)被調(diào)用時,都會為該函數(shù)創(chuàng)建一個新的上下文,在函數(shù)調(diào)用時創(chuàng)建
  • Eval函數(shù)執(zhí)行上下文在eval函數(shù)內(nèi)部的代碼也會有屬于自己的執(zhí)行上下文

執(zhí)行棧

  • 也就是編程語言中所說的“調(diào)用棧”,是一種LIFO(后進先出)的數(shù)據(jù)結(jié)構(gòu)棧,被用來存儲代碼運行時創(chuàng)建的所有執(zhí)行上下文。
  • JavaScript引擎初次運行腳本時,會創(chuàng)建一個全局執(zhí)行上下文并且壓入當前執(zhí)行棧。每當引擎遇到一個函數(shù)調(diào)用,會為該函數(shù)創(chuàng)建一個新的執(zhí)行上下文并壓入棧頂部。
  • 引擎會執(zhí)行上下文位于棧頂?shù)暮瘮?shù)。當該函數(shù)結(jié)束,從棧中彈出,控制流程到達當前棧中的下一個上下文。

創(chuàng)建執(zhí)行上下文

創(chuàng)建執(zhí)行上下文分為兩個階段

  • 創(chuàng)建階段
  • 執(zhí)行階段

在代碼執(zhí)行前,執(zhí)行上下文將經(jīng)歷創(chuàng)建階段,創(chuàng)建階段會發(fā)生三件事。

  • this值的決定,也就是this綁定
  • 創(chuàng)建語法環(huán)境組件
  • 創(chuàng)建變量環(huán)境組件

this綁定

全局執(zhí)行上下文中,this指向全局對象。(瀏覽器中,this指Windows)

函數(shù)執(zhí)行上下文中,this的值取決于該函數(shù)是如何被調(diào)用的。如果是被一個對象調(diào)用,那么this會被設(shè)置成那個對象,否則this的值被設(shè)置為全局對象、嚴格模式下(undefined

詞法環(huán)境

簡單來說詞法環(huán)境就是標識符==>變量映射的結(jié)構(gòu)。標識符:變量/函數(shù)的名字。變量:實際對象或原始

詞法環(huán)境又分為

  • 環(huán)境記錄器:存儲變量和函數(shù)聲明的實際位置
  • 外部環(huán)境的引用:它可以訪問父級詞法環(huán)境(作用域)

詞法環(huán)境兩種類型

  • 全局環(huán)境(在全局環(huán)境執(zhí)行上下文)是沒有外部引用的,全局環(huán)境的外部環(huán)境引用為null。全局環(huán)境擁有內(nèi)建的object/array、Windows等,還有任何用戶定義的全局變量,this指向全局對象。
  • 函數(shù)環(huán)境,函數(shù)內(nèi)部用戶定義的變量存儲在環(huán)境記錄器。并且引用的外部環(huán)境可能是全局環(huán)境或任何包含此內(nèi)部函數(shù)的外部函數(shù)。

環(huán)境記錄器

  • 聲明式環(huán)境記錄器:存儲變量、函數(shù)和參數(shù)。
  • 對象環(huán)境記錄器:用來定義出現(xiàn)在全局上下文中的變量和函數(shù)關(guān)系。

到此這篇關(guān)于JavaScript中執(zhí)行上下文和執(zhí)行棧的文章就介紹到這了,更多相關(guān)JS執(zhí)行上下文內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論