JavaScript引擎

渲染引擎和JavaScript引擎

先從一張圖片來理解下這兩個引擎javascript

clipboard.png

一,渲染引擎:

主要做用是解釋html和css,並繪製頁面;
每種瀏覽器的渲染引擎可能會不同,但都遵循W3C標準開發而成,方便Web技術的互相兼容性;
比較常見的幾種渲染引擎css

  • IE: Trident
  • Firefox: Gecko
  • Safari:Webkit
  • Chrome:Blink

二,JavaScript引擎

主要做用是解釋並執行JavaScript;
每種瀏覽器也會有不一樣的JavaScript引擎,但都遵循ECMAScript標準開發而成,便於兼容JavaScript技術
比較常見的幾種JavaScript引擎html

  • IE: Chakra
  • Firefox: TraceMonkey
  • Safari: Nitro
  • Chrome: V8

----- 段落來源java

什麼是JavaScript引擎?

JavaScript引擎的基本工做是獲取開發人員編寫的JavaScript代碼,並將其轉換爲可由瀏覽器解釋甚至嵌入到應用程序中的快速優化代碼。通常會附帶在網頁瀏覽器之中。web

更確切地說,每一個JavaScript引擎都實現了ECMAScript的一個版本,其中JavaScript是一種方言。隨着ECMAScript的發展,JavaScript引擎也在不斷髮展。有不少不一樣的引擎,如:headless browser、Node.js和各類web瀏覽器。headless browser是指沒有圖形用戶界面的Web瀏覽器,可用於運行鍼對Web產品的自動化測試。一個很好的例子是PhantomJS。Node.js是一個異步的,事件驅動的框架,容許在服務器端使用JavaScript。因爲這些是JavaScript驅動的工具,所以它們由JavaScript引擎提供支持。瀏覽器

JavaScript引擎如何工做?

鑑於虛擬機的定義,將JavaScript引擎稱爲流程虛擬機是有意義的,由於它的惟一目的是讀取和編譯JavaScript代碼。這並不意味着它是一個簡單的引擎。例如,JavaScriptCore有六個構建塊,用於分析,解釋,優化和垃圾回收。服務器

JavaScript是如何工做的了?固然,這取決因而什麼引擎。兩個主要引擎是WebKit的JavaScriptCore和Google的V8引擎。這兩個引擎處理代碼的方式是不一樣的。框架

  • JavaScriptCore執行一系列步驟來解釋和優化腳本。它執行詞法分析,將源分解爲一系列具備已識別含義的標記或字符串。而後解析器分析令牌的語法並將其內置到語法樹中。而後,四個即時進程啓動,分析並執行解析器生成的字節碼。簡單來講,這個JavaScript引擎獲取源代碼,將其分解爲字符串,獲取這些字符串並將它們轉換爲編譯器能夠理解的字節碼,而後執行它。
  • 谷歌的V8引擎,用C ++編寫,也編譯和執行JavaScript源代碼,處理內存分配,垃圾收集剩餘物。它的設計包括兩個編譯器,它們直接將源代碼彙編到機器代碼中。

一旦編譯過程產生機器代碼,引擎就會將ECMA標準中指定的全部數據類型,操做符,對象和函數暴露給瀏覽器或須要使用它們的任何運行時,如NativeScript。less

這對開發人員意味着什麼?

JavaScript引擎的代碼解析和執行過程的目標是在最短的時間內生成最優化的代碼。最重要的是,這些引擎的發展與開發Web和移動領域的過程平行,以使它們儘量地運行。
任何Web開發人員都須要瞭解瀏覽器中固有的差別,這些瀏覽器顯示生成,調試和維護的代碼。更具體地說,理解爲何某些腳本在另外一個瀏覽器上的運行速度較慢,這一點很重要。異步

相關閱讀:
瀏覽器野史
瀏覽器是如何渲染網頁的
JavaScript引擎
javascript引擎基礎
相關文章
相關標籤/搜索