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