摘要:由于這些是驅動的工具,因此它們由引擎提供支持。兩個主要引擎是的和的引擎。然后,四個即時進程啟動,分析并執行解析器生成的字節碼。簡單來說,這個引擎獲取源代碼,將其分解為字符串,獲取這些字符串并將它們轉換為編譯器可以理解的字節碼,然后執行它。
渲染引擎和JavaScript引擎
先從一張圖片來理解下這兩個引擎
一,渲染引擎:主要作用是解釋html和css,并繪制頁面;
每種瀏覽器的渲染引擎可能會不一樣,但都遵循W3C標準開發而成,方便Web技術的互相兼容性;
比較常見的幾種渲染引擎
IE: Trident
Firefox: Gecko
Safari:Webkit
Chrome:Blink
二,JavaScript引擎主要作用是解釋并執行JavaScript;
每種瀏覽器也會有不同的JavaScript引擎,但都遵循ECMAScript標準開發而成,便于兼容JavaScript技術
比較常見的幾種JavaScript引擎
IE: Chakra
Firefox: TraceMonkey
Safari: Nitro
Chrome: V8
----- 段落來源
什么是JavaScript引擎?JavaScript引擎的基本工作是獲取開發人員編寫的JavaScript代碼,并將其轉換為可由瀏覽器解釋甚至嵌入到應用程序中的快速優化代碼。一般會附帶在網頁瀏覽器之中。
更確切地說,每個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。
這對開發人員意味著什么?JavaScript引擎的代碼解析和執行過程的目標是在最短的時間內生成最優化的代碼。最重要的是,這些引擎的發展與開發Web和移動領域的過程平行,以使它們盡可能地運行。
任何Web開發人員都需要了解瀏覽器中固有的差異,這些瀏覽器顯示生成,調試和維護的代碼。更具體地說,理解為什么某些腳本在另一個瀏覽器上的運行速度較慢,這一點很重要。
相關閱讀:
瀏覽器野史
瀏覽器是如何渲染網頁的
JavaScript引擎
javascript引擎基礎
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100413.html
摘要:由于這些是驅動的工具,因此它們由引擎提供支持。兩個主要引擎是的和的引擎。然后,四個即時進程啟動,分析并執行解析器生成的字節碼。簡單來說,這個引擎獲取源代碼,將其分解為字符串,獲取這些字符串并將它們轉換為編譯器可以理解的字節碼,然后執行它。 渲染引擎和JavaScript引擎 先從一張圖片來理解下這兩個引擎 showImg(https://segmentfault.com/img/bVb...
摘要:由于這些是驅動的工具,因此它們由引擎提供支持。兩個主要引擎是的和的引擎。然后,四個即時進程啟動,分析并執行解析器生成的字節碼。簡單來說,這個引擎獲取源代碼,將其分解為字符串,獲取這些字符串并將它們轉換為編譯器可以理解的字節碼,然后執行它。 渲染引擎和JavaScript引擎 先從一張圖片來理解下這兩個引擎 showImg(https://segmentfault.com/img/bVb...
摘要:書接上文瀏覽器之硬件加速機制本章主要講解中廣泛使用的引擎和引擎。解釋器在某些引擎中,解釋器主要是接收字節碼,解釋執行這個字節碼,同時也依賴垃圾回收機制等。 showImg(https://segmentfault.com/img/remote/1460000016359609); 微信公眾號:愛寫bugger的阿拉斯加如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 此文章是我...
摘要:什么是中的調用棧調用棧就像是程序當前執行的日志。當函數執行結束時,將從調用棧中出去。了解全局和局部執行上下文是掌握作用域和閉包的關鍵。總結引擎創建執行上下文,全局存儲器和調用棧。 原文作者:Valentino 原文鏈接:https://www.valentinog.com/blog/js-execution-context-call-stack 什么是Javascript中的執行上下文...
摘要:推薦一些好用的游戲引擎開發庫引言如果你是一個游戲開發者,并且正在尋找一個可以與和無縫工作的游戲引擎。是另一個容易使用,適用于移動設備和桌面的游戲引擎。是一個開源的用來創建使用高級技術和服務的游戲引擎。用于建立游戲和繪圖引擎。 推薦一些好用的 HTML5 & JavaScript 游戲引擎開發庫 0. 引言 如果你是一個游戲開發者,并且正在尋找一個可以與 JavaScript 和 HT...
閱讀 1481·2019-08-30 15:44
閱讀 1945·2019-08-30 14:07
閱讀 2871·2019-08-30 13:56
閱讀 2336·2019-08-29 17:06
閱讀 1323·2019-08-29 14:13
閱讀 2078·2019-08-29 11:28
閱讀 3223·2019-08-26 13:56
閱讀 1940·2019-08-26 12:11