首頁技術(shù)文章正文

JavaScript編譯原理介紹【1分鐘搞懂】

更新時(shí)間:2021-11-26 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

JavaScript代碼在運(yùn)行之前會(huì)經(jīng)過一個(gè)編譯的過程,而編譯有分詞、解析和代碼生成三個(gè)步驟,下面我們?cè)敿?xì)介紹。


第一個(gè)步驟:分詞

分詞的目的是把字符組成的代碼分解成有意義的代碼塊,這些代碼塊稱為詞法單元。


第二個(gè)步驟:解析

由JavaScript編譯器對(duì)分詞得到的一個(gè)個(gè)代碼塊進(jìn)行解析,生成一棵抽象的語法樹(AST)。


第三個(gè)步驟:代碼生成

在這個(gè)過程中,JavaScript引擎會(huì)把在第二個(gè)步驟中生成的抽象語法樹轉(zhuǎn)換成可執(zhí)行的代碼,也就是最終生成出一些機(jī)器指令。

代碼編譯

實(shí)際上,javascript引擎的編譯過程要復(fù)雜得多,包括大量優(yōu)化操作,上面的三個(gè)步驟是基本的編譯概述。


總結(jié):

JavaScript代碼編譯原理,編譯器把程序分解成詞法單元(token),然后把詞法單元解析成語法樹(AST),再把語法樹變成機(jī)器指令等待執(zhí)行。



猜你喜歡:

JS數(shù)組中去除重復(fù)值的幾種方法?

JavaScript數(shù)組排序如何實(shí)現(xiàn)?

Javascript如何改變數(shù)組的長度?

Javascript多維數(shù)組介紹

黑馬程序員web前端開發(fā)高手班

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!