User:I am VN123/JavaScript engine

JavaScript engine là một thành phần phần mềm thực thi mã 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 có liên quan đều sử dụng trình biên dịch tức thời để cải thiện hiệu suất.

Các JavaScript engine thường được phát triển bởi các nhà cung cấp trì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 qua Document 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ụ: V8 engine là thành phần cốt lõi của hệ thống runtime Node.js và Deno.

Vì ECMAScript là thông số kỹ thuật tiêu chuẩn của JavaScript, nên ECMAScript engine 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.

Lịch sử
JavaScript engine đầu tiên được tạo bởi Brendan Eich vào năm 1995 cho trình duyệt web Netscape 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 SpiderMonkey engine, vẫn được trình duyệt Firefox sử dụng.)

JavaScript engine hiện đại đầu tiên là V8, do Google tạo cho trình duyệt Chrome của mình. V8 ra mắt như một phần của Chrome vào năm 2008 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 đó. 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. 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. 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ăm 2017, 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.

Các engine đáng chú ý

 * V8 của Google là JavaScript engine được sử dụng nhiều nhất. Google Chrome và nhiều trình duyệt dựa trên Chromium 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 runtime Node.js và Deno.
 * SpiderMonkey được phát triển bởi Mozilla để sử dụng trong Firefox 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ủa Apple dành cho trình duyệt Safari. 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ó.
 * Chakra là engine của trình duyệt Internet Explorer. Nó cũng được Microsoft rẽ nhánh cho trình duyệt Edge 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.