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 一樣的虛擬機器或者位元組碼直譯器。這麼做主要是為了減少這抽象語法樹到位元組碼的轉換時間,這一切都在網頁載入時候完成,雖然可以提高最佳化的可能,但是這些分析可能帶來巨大的時間浪費。
免責宣告:本文圖片及文字資訊均由小編轉載自網路,如有侵權請聯絡我們進行刪除。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2707778/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript的工作原理:引擎,執行時和呼叫堆疊JavaScript
- JavaScript 工作原理之一-引擎,執行時,呼叫堆疊(譯)JavaScript
- JavaScript 工作原理之十一-渲染引擎及效能優化小技巧JavaScript優化
- 工作流引擎的工作原理與功能
- 【譯】JavaScript的工作原理:引擎,執行時和呼叫堆疊的概述JavaScript
- JavaScript預編譯原理, 引擎,作用域JavaScript編譯原理
- Google V8 引擎工作原理(翻譯)Go
- JavaScript 如何工作系列: 引擎、執行時、呼叫棧概述JavaScript
- [譯] JavaScript 如何工作:渲染引擎和效能優化技巧JavaScript優化
- JavaScript 工作原理之六-WebAssembly 對比 JavaScript 及其使用場景JavaScriptWeb
- 深入瀏覽器工作原理和JS引擎(V8引擎為例)瀏覽器JS
- 後端技術雜談2:搜尋引擎工作原理後端
- 【JS 口袋書】第 4 章:JS 引擎底層的工作原理JS
- JavaScript 工作原理之二-如何在 V8 引擎中書寫最優程式碼的 5 條小技巧(譯)JavaScript
- JavaScript是如何工作的:渲染引擎和優化其效能的技巧JavaScript優化
- 【譯】JavaScript如何工作的:一覽引擎、執行時和呼叫棧JavaScript
- 有用過Handlebars模板引擎嗎?它的工作原理是怎樣的?
- JavaScript 工作原理之十-使用 MutationObserver 監測 DOM 變化JavaScriptServer
- 瞭解JavaScript引擎JavaScript
- javascript遊戲引擎JavaScript遊戲引擎
- JavaScript是如何工作的:引擎,執行時和呼叫堆疊的概述!JavaScript
- ejs模板引擎原理JS
- 【譯】JavaScript的工作原理:V8引擎內部+關於如何編寫優化程式碼的5個技巧JavaScript優化
- JavaScript 工作原理之九-網頁訊息推送通知機制JavaScript網頁
- 使用flowable建立工作引擎
- Javascript是如何工作的:V8引擎的核心Ignition和TurboFanJavaScript
- 瀏覽器引擎、渲染引擎與JavaScript引擎的區別瀏覽器JavaScript
- QuickJS Javascript引擎釋出UIJSJavaScript
- 手擼 JavaScript 模板引擎JavaScript
- 搜尋引擎-03-搜尋引擎原理
- 譯—JavaScript是如何工作的(1):js引擎、執行時和呼叫棧的概述JavaScriptJS
- JavaScript 工作原理之十三-CSS 和 JS 動畫底層原理及如何優化其效能JavaScriptCSSJS動畫優化
- KubernetesAPIserver工作原理APIServer
- Mybatis工作原理MyBatis
- require工作原理UI
- HTTPS工作原理HTTP
- Nginx工作原理Nginx
- pr工作原理