先從一張圖片來理解下這兩個引擎javascript
主要做用是解釋html和css,並繪製頁面;
每種瀏覽器的渲染引擎可能會不同,但都遵循W3C標準開發而成,方便Web技術的互相兼容性;
比較常見的幾種渲染引擎css
主要做用是解釋並執行JavaScript;
每種瀏覽器也會有不一樣的JavaScript引擎,但都遵循ECMAScript標準開發而成,便於兼容JavaScript技術
比較常見的幾種JavaScript引擎html
----- 段落來源java
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代碼。這並不意味着它是一個簡單的引擎。例如,JavaScriptCore有六個構建塊,用於分析,解釋,優化和垃圾回收。服務器
JavaScript是如何工做的了?固然,這取決因而什麼引擎。兩個主要引擎是WebKit的JavaScriptCore和Google的V8引擎。這兩個引擎處理代碼的方式是不一樣的。框架
一旦編譯過程產生機器代碼,引擎就會將ECMA標準中指定的全部數據類型,操做符,對象和函數暴露給瀏覽器或須要使用它們的任何運行時,如NativeScript。less
JavaScript引擎的代碼解析和執行過程的目標是在最短的時間內生成最優化的代碼。最重要的是,這些引擎的發展與開發Web和移動領域的過程平行,以使它們儘量地運行。
任何Web開發人員都須要瞭解瀏覽器中固有的差別,這些瀏覽器顯示生成,調試和維護的代碼。更具體地說,理解爲何某些腳本在另外一個瀏覽器上的運行速度較慢,這一點很重要。異步
相關閱讀:
瀏覽器野史
瀏覽器是如何渲染網頁的
JavaScript引擎
javascript引擎基礎