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