JavaScript: Node.js 是其執行環境

V8 是 Google 開發的開源 JavaScript 引擎,用於編譯 JavaScript 使其能夠在 Chrome 和 Node.js 中執行。作為一個直譯語言,JavaScript 在執行時需要一個執行環境,而 Node.js 提供了這樣的環境,使得 JavaScript 能夠脫離瀏覽器運行。為了兼顧直譯語言的靈活與編譯語言的效能,V8 採用了即時編譯(JIT)的技術,這種技術在執行 JavaScript 時,能夠即時將程式碼編譯成機器碼,大大提高了執行效率。

JavaScript: Node.js 是其執行環境
Photo by Tim Mossholder / Unsplash
V8 是 JavaScript 的編譯器

JavaScript 需要存在直譯器 interpret 程式碼後再執行,因此 Node.js 使用 V8 虛擬機進行直譯(一個由 Google 開發的開源 JavaScript 引擎)

※ Chrome 和 Node.js 都是用 V8 在執行 JavaScript

Node.js 是 JavaScript 的 Runtime 執行環境,讓其能脫離瀏覽器的環境運行程式碼

而定義上來說 Node.js 是 JavaScript 的 Runtime 執行環境,要在電腦上執行 JavaScript 就需要有 Node.js。

JavaScript 同時具備直譯語言和編譯語言的特性

編譯語言的好處是可以在執行前的編譯階段,審視所有的程式碼將可以做的優化都完成,但直譯語言就無法做到這一點,因為執行時才開始解釋的關係,執行上就相對較慢,也沒辦法在一開始做優化。

為了處理這個狀況 JIT 出現了,中文名稱是即時編譯,這也是 V8 引擎所採用在執行時編譯 JavaScript 的方式。

JIT 的方式結合解釋和編譯兩者,讓執行 JavaScript 的時候,能夠分析程式碼執行過程的情報,並在取得足夠情報時,將相關的程式碼再編譯成效能更快的機器碼出現了。


參考資料: 執行JavaScript 的V8 引擎做了什麼?