javascript引擎詳細(xì)介紹 用JavaScript寫成的JavaScript解釋器,意義是什么?
用JavaScript寫成的JavaScript解釋器,意義是什么?對(duì)一個(gè)語言來說,用自己給自己寫編譯器或是回答器,叫“自舉”(Bootstrap),這是一種很最重要的能力,能夠提高語言的完善系統(tǒng)和反
用JavaScript寫成的JavaScript解釋器,意義是什么?
對(duì)一個(gè)語言來說,用自己給自己寫編譯器或是回答器,叫“自舉”(Bootstrap),這是一種很最重要的能力,能夠提高語言的完善系統(tǒng)和反展。同樣,確實(shí)是一種“宣言”,我完全去中心化、我很強(qiáng)大無比、我不依賴感于別的語言。
編譯型的語言(C/C/GO等等),自舉比較好不容易做到。但Javascript這類解釋型的動(dòng)態(tài)語言,就也很難了。是因?yàn)镴S代碼仍然要在JS的解釋器里執(zhí)行;假如JS的解釋器又是JS寫的,這樣的話誰負(fù)責(zé)不能執(zhí)行請(qǐng)解釋器?
所以,從邏輯的角度看,論怎末弄,必須先有一個(gè)宿主JS引擎來啟動(dòng)才行,而這個(gè)宿主JS引擎,當(dāng)然不是JS寫的。在第一次由宿主JS引擎不能執(zhí)行的過程中,它將自己編譯器成機(jī)器碼,存儲(chǔ)在本地機(jī)器上,后就真接不能執(zhí)行機(jī)器代碼就可以了,甩脫宿主,利用“自舉”。有興趣的話,可以不在Github上搜“Tachyon”這個(gè)項(xiàng)目,它那是用這種實(shí)現(xiàn)程序的。更甚者,其它依賴于JS引擎的各種實(shí)現(xiàn),都算不上自舉。
對(duì)程序員而言,好像聽說沒有什么不光大的意義。要是您自己用JS寫了個(gè)JS解釋器,代表您對(duì)語言的Specification的理解、對(duì)編譯原理的掌握很到位,不過話又說回來是很列害的意思。
為什么有人說JavaScript是世界上最好的語言?
的話那就回答我不懂就不要回答我,討厭圖片文件夾粘帖的。
以下是簡(jiǎn)單的語言通俗易懂個(gè)人能回答:
1、歷史
js以及腳本語言可以不方便些運(yùn)行在各平臺(tái)瀏覽器,貼入html,從web1.0、web2.0、web3.0始終沿稱到現(xiàn)在。
2、簡(jiǎn)單的
簡(jiǎn)單通俗,允許動(dòng)態(tài)配置,單線程運(yùn)行程序。
3、靈活自如
可以不正常運(yùn)行在有js引擎虛擬機(jī)中,帶有l(wèi)ua。不光適用規(guī)定于前端瀏覽器業(yè)務(wù),后端場(chǎng)景也區(qū)分。
4、NodeJS之火
node實(shí)現(xiàn)googleV8引擎,可以比較方便的開發(fā)后端業(yè)務(wù),對(duì)前后端分離有了新的選擇;另外需要提供了多種可全局函數(shù)的API,如讀寫文件、網(wǎng)絡(luò)請(qǐng)求、OS信息等。v12發(fā)動(dòng)機(jī)將JavaScript代碼請(qǐng)解釋成機(jī)器指令序列想執(zhí)行,提升運(yùn)行效率。
5、Node生態(tài)
從npm組件管理,到react等第三方庫,node生態(tài)更加強(qiáng)大