V8 JavaScript 引擎
V8 是 Google Chrome 引擎的名稱。它是負責執行我們的 JavaScript 的東西,當我們使用 Chrome 瀏覽時。
V8 是 JavaScript 引擎,即解析並執行 JavaScript 代碼。DOM 和其他 Web 平台 API(它們組成運行時環境)由瀏覽器提供。
很酷的是,JavaScript 引擎獨立於它所托管的瀏覽器。這一關鍵特性使 Node.js 的崛起成為可能。V8 在 2009 年被選為 Node.js 的引擎,隨著 Node.js 的流行,V8 成為現在驅動大量用 JavaScript 編寫的服務器端代碼的引擎。
Node.js 生態系統龐大,得益於 V8 引擎,它也為桌面應用程序提供動力,例如 Electron 項目。
其他 JS 引擎
其他瀏覽器有自己的 JavaScript 引擎
- Firefox 使用 SpiderMonkey
- Safari 使用 JavaScriptCore(也稱為 Nitro)
- Edge 最初基於 Chakra,但最近消耗 Chromium 重建,並使用 V8 引擎。
還有許多其他引擎存在。
所有這些引擎實現了 ECMA ES-262 標準,也稱為 ECMAScript,這是 JavaScript 使用的標準。
性能追求
V8 是用 C++ 編寫的,並且不斷改進。它是可移植的,在 Mac、Windows、Linux 和其他幾個系統上運行。
在這個 V8 簡介中,我們將忽略 V8 的實現細節:這些細節可以在更權威的網站上找到(例如 V8 官方網站),而且它們會隨時間不斷變化,有時會發生根本性的變化。
V8 始終在不斷發展,就像其他 JavaScript 引擎一樣,以加速 Web 和 Node.js 生態系統的發展。
在網絡上,已經有多年的性能競爭,我們(作為用戶和開發人員)從這場競爭中受益良多,因為我們每年都會得到更快、更優化的機器。
編譯
JavaScript 通常被認為是一種解釋語言,但現代 JavaScript 引擎不僅僅是解釋 JavaScript,它們會將其編譯。
自 2009 年以來,當 SpiderMonkey JavaScript 編譯器被添加到 Firefox 3.5 時,這種情況已經發生,而所有人都遵循了這個想法。
JavaScript 在 V8 內部進行編譯,採用即時(JIT)編譯以加快執行速度。
這可能看起來有些反直覺,但自從2004年Google Maps推出以來,JavaScript已經從一種通常執行幾十行程式碼的語言,演變成在瀏覽器中運行數千至數十萬行程式碼的完整應用程式。
我們的應用程式現在可以在瀏覽器中運行數小時,而不僅僅是幾個表單驗證規則或簡單的腳本。
在這個新世界中,編譯JavaScript是完全合理的,因為雖然可能需要更多時間來準備JavaScript,但一旦完成,它的性能將比純解釋代碼好得多。