Engine JavaScript là một thành phần phần mềm thực thimãJavaScript. Các JavaScript engine đầu tiên chỉ làtrình thông dịch, nhưng tất cả các engine hiện đại đều sử dụng biên dịch tức thời để cải thiện hiệu suất.[1]
Các JavaScript engine thường được phát triển bởi các nhà cung cấptrình duyệt web và mọi trình duyệt chính đều có một cái. Trong trình duyệt, JavaScript engine chạy cùng với công cụ hiển thị thông quaDocument Object Model.
Việc sử dụng các JavaScript engine không giới hạn ở các trình duyệt. Ví dụ: EngineV8 là thành phần cốt lõi của hệ thống runtimeNode.js và Deno.
VìECMAScript là thông số kỹ thuật tiêu chuẩn của JavaScript, nênengine ECMAScript là tên gọi khác của các engine này. Với sự ra đời của WebAssembly, một số engine cũng có thể thực thi mã này trong cùng sandbox như mã JavaScript thông thường.
JavaScript engine đầu tiên được tạo bởiBrendan Eich vào năm1995 chotrình duyệt webNetscape Navigator. Đó là một trình thông dịch thô sơ cho ngôn ngữ non trẻ mà Eich đã phát minh ra. (Engine này đã phát triển thành engine SpiderMonkey, vẫn được trình duyệtFirefox sử dụng.)
JavaScript engine hiện đại đầu tiên làV8, doGoogle tạo cho trình duyệtChrome của mình. V8 ra mắt như một phần của Chrome vào năm2008 và hiệu suất của nó tốt hơn nhiều so với bất kỳ engine nào trước đó.[2][3] Sự đổi mới quan trọng là biên dịch đúng lúc, có thể cải thiện đáng kể thời gian thực hiện.
Các nhà cung cấp trình duyệt khác cần đại tu trình thông dịch của họ để cạnh tranh.[4] Các nhà cung cấp trình duyệt khác cần đại tu trình thông dịch của họ để cạnh tranh.[5]Mozilla đã tận dụng một phần của Nitro để cải thiện engine SpiderMonkey của riêng mình.
Kể từ năm2017, các engine này đã thêm hỗ trợ cho WebAssembly. Điều này cho phép sử dụng các tệp thực thi được biên dịch sẵn cho các phần quan trọng về hiệu suất của tập lệnh trang.
V8 củaGoogle là engine JavaScript được sử dụng nhiều nhất.Google Chrome và nhiều trình duyệt dựa trênChromium khác sử dụng nó, cũng như các ứng dụng được xây dựng bằng CEF, Electron hoặc bất kỳ framework nào khác nhúng Chromium. Các engine khác sử dụng nó bao gồm các hệ thống runtimeNode.js và Deno.
SpiderMonkey được phát triển bởiMozilla để sử dụng trongFirefox và các nhánh của nó.GNOME Shell sử dụng nó để hỗ trợ tiện ích mở rộng.
JavaScriptCore là engine củaApple dành cho trình duyệtSafari. Các trình duyệt dựa trên WebKit khác cũng sử dụng nó. KJS từKDE là điểm khởi đầu cho sự phát triển của nó.[6]
Chakra là engine của trình duyệtInternet Explorer. Nó cũng đượcMicrosoft chia ra cho trình duyệtEdge ban đầu, nhưng Edge sau đó đã được xây dựng lại thành trình duyệt dựa trên Chromium và do đó hiện sử dụng V8.[7][8]