2020-07-29
web前端培訓 JavaScript
好程序員web前端培訓分享JavaScript引擎工作原理,JavaScript是Web前端人員必須要掌握的知識點之一,也是一門高級語言。最初JavaScript只是在Web瀏覽器中運行,隨著Node的出現,JavaScript也可以在服務端運行。
下面給大家講解一下JavaScript引擎工作原理。
JavaScript引擎是什么?
JavaScript引擎是一種用于將我們的代碼轉換為機器可讀語言的引擎。如果沒有JavaScript引擎,你編寫的代碼對計算機來說簡直是一堆“胡言亂語”。不僅僅是JavaScript,其他所有編程語言都需要一個類似的引擎,來將這些“胡言亂語”轉換成對計算機有意義的語言。
JavaScript引擎的組成部分有哪些?
1、編譯器。主要工作是將源代碼編譯成抽象語法樹,然后在某些引擎中還包含將抽象語法樹轉換成字節碼。
2、解釋器。在某些引擎中,解釋器主要是接受字節碼,解釋執行這個字節碼,然后也依賴來及回收機制等。
3、JIT工具。一個能夠JIT的工具,將字節碼或者抽象語法樹轉換成本地代碼,當然它也需要依賴牢記垃圾回收器和分析工具(profiler)。它們負責垃圾回收和收集引擎中的信息,幫助改善引擎的性能和功效。
JavaScript引擎是如何工作的?
JavaScript的工作形式取決于是什么引擎。目前比較常用的JavaScript引擎有兩個:WebKit的JavaScriptCore和Google的V8引擎。這兩個引擎處理代碼的方式是不同的。JavaScriptCore: 源代碼=》抽象語法樹=》字節碼
1、詞法分析,將源代碼分解成一系列具有明確含義的符號或字符串(分詞);
2、用詞法分析器分析這些符號,將其構建成抽象語法樹;
3、解析器生成字節碼(編譯器可以理解);
4、4個JIT(Just-In-Time)進程參與進來,分析和執行解析器所生成的字節碼。谷歌的V8引擎,用C++編寫,也編譯和執行JavaScript源代碼、處理內存分配、垃圾收集剩余物。V8引擎并不將抽象語法樹轉變成字節碼或者其它中間表示,沒有像Java一樣的虛擬機或者字節碼解釋器。這么做主要是為了減少這抽象語法樹到字節碼的轉換時間,這一切都在網頁加載時候完成,雖然可以提高優化的可能,但是這些分析可能帶來巨大的時間浪費。
免責聲明:本文圖片及文字信息均由小編轉載自網絡,如有侵權請聯系我們進行刪除。
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號