摘要:文章地址瀏覽器怎么執行代碼引擎怎么執行代碼引擎會創建一個全局執行上下文,一個全局內存又叫做全局作用域全局變量環境,如果有函數調用,還需要創建調用棧和局部執行上下文本地執行上下文展開一下。執行上下文棧,也可以叫做調用棧通過執行上下文。
文章地址:https://github.com/leonardoms...
瀏覽器怎么執行代碼?
JS引擎怎么執行代碼?
JS引擎會創建一個全局執行上下文【Global Execution Context】,一個全局內存【Global Memory】(又叫做全局作用域【Global Scope】、全局變量環境【Global Variable Environment】),如果有函數調用,還需要創建調用棧【Call Stack】和局部執行上下文【Local Execution Context】(本地執行上下文)
展開一下。
執行上下文是一個環境,JS代碼會在里面被解析和執行。分為全局執行上下文,函數執行上下文和Eval函數執行上下文。
全局執行上下文,引擎默認的,沒有在函數中的代碼會被放在此上下文。包含兩個階段:創建和執行。全創建階段會創建一個全局對象(global或window)和this變量,為變量和函數分配內存,hoisting【為聲明的變量賦初始值undefined】。
函數執行上下文,當函數被調用時被創建。創建階段會創建arguments對象,this對象,為變量和函數分配內存,hoisting【為聲明的變量賦初始值undefined】
Eval函數執行上下文,無需理解,因為我們幾乎用不到。
執行上下文棧,也可以叫做調用棧?
通過執行上下文。JS引擎可以解析和運行復雜的代碼。
參考資料:
https://www.valentinog.com/bl...
https://tc39.github.io/ecma26...
https://tylermcginnis.com/jav...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98997.html
摘要:阮一峰老師開源作品。書上的示例代碼可以通過在線網站代碼調試工具調試。 阮一峰老師開源作品。 書上的示例代碼可以通過 在線網站代碼調試工具 JS Bin 調試。 作用域 作用域鏈 每個變量或函數通過執行環境 (execution context) 定義了其有權訪問的其他數據,決定了他們各自的行為; 全局執行環境是最頂層的執行環境,根據宿主環境的不同,表示全局執行環境的對象也不同:在瀏覽...
摘要:面向對象精要讀書筆記下面代碼的實際執行過程是什么使用原始值和原始封裝類型是有區別的因為是被解析成一個對象的,所以肯定是真的函數是對象,函數有兩種字面形式,第一種是函數聲明,以關鍵字開頭后面跟函數名字。 Javascript面向對象精要讀書筆記 1、下面代碼的實際執行過程是什么? var name = fan var str = name.charAt(0) console.l...
摘要:堆棧結構的底部是全局執行上下文,頂部是當前執行上下文。不同的執行上下文切換時堆棧會發生改變譯論及代碼類型時,在某些時候可能也意味著執行上下文。函數體中代碼執行完后,只剩全局上下文直到程序結束譯代碼更有意思。 第一次翻譯,希望各位多多包涵,有錯誤處還望指出,歡迎提出建議。 Chapter 1.Execution Contexts Introduction (介紹) Definitio...
摘要:線程允許同一個進程中同時存在多個程序控制流。線程也被稱為輕量級進程。現代操作系統中,都是以線程為基本的調度單位,而不是進程。 并發簡史 在早期的計算機中不包含操作系統,從頭至尾都只執行一個程序,并且這個程序能訪問計算機所有資源。操作系統的出現使得計算機每次能運行多個程序,并且不同的程序都在單獨的進程中運行:操作系統為各個獨立執行的進程分配內存、文件句柄、安全證書等。不同進程之間通過一些...
閱讀 718·2021-10-14 09:42
閱讀 1972·2021-09-22 15:04
閱讀 1574·2019-08-30 12:44
閱讀 2140·2019-08-29 13:29
閱讀 2734·2019-08-29 12:51
閱讀 548·2019-08-26 18:18
閱讀 702·2019-08-26 13:43
閱讀 2809·2019-08-26 13:38