JavaScript Engine là gì? Tìm hiểu JavaScript Engine

Home » javascript » JavaScript Engine là gì? Tìm hiểu JavaScript Engine

JavaScript Engine là gì? Tìm hiểu JavaScript Engine.

JavaScript Engine là gì?

JavaScript Engine là một chương trình máy tính thực thi các đoạn code JavaScript (JS).

JavaScript đọc các đoạn mã JavaScript rồi chuyển nó sang mã máy để máy tính (hoặc phần mềm máy tính như trình duyệt web, server node.js…) có thể hiểu và chạy được.

JavaScript Engine là gì? Tìm hiểu JavaScript Engine

Nếu bạn đã lập trình với Java hay C/C++ thì có thể hiểu JavaScript tương đương với JDK trong Java hay trình Compiler C/C++ trong lập trình C/C++.

Các bản JavaScript Engine phổ biến

Có nhiều bản JavaScript Engine được phát triển bởi các các vendor (nhà cung cấp) khác nhau. Một số JavaScript Engine phổ biến như:

  • SpiderMonkey  – Phiên bản Javascript engine đầu tiên, được dùng trên trình duyệt web đầu tiên trên thế giới – Netscape Navigator, hiện tại đang được sử dụng trên Firefox, viết bằng C và C++.
  • Chakra – Là một Javascript engine cũng khá lâu đời, ban đầu được sử dụng trên Internet Explorer và biên dịch JScript, nay được dùng cho Microsoft Edge, viết bằng C++.
  • Rhino – Một Engine viết hoàn toàn bằng Java, cũng có lịch sử phát triển lâu đời từ Netscape Navigator, hiện tại được phát triển bởi Mozilla Foundation.
  • Google V8 – Được phát triển bới Google (Chromium Project).

Ngoài các JS Engine trên, còn rất nhiều JavaScript Engine khác như CarakanJavaScriptCoreTamarinNashorn

JavaScript dùng ở đâu?

Đầu tiên, các JavaScript Engine chủ yếu được phát triển và cài đặt cho các trình duyệt web (web browser). Ví dụ Chrome V8 dùng cho Google Chrome, SpiderMonkey dùng cho trình duyệt FireFox… Tức là chỉ dùng cho client.

Sau này, các JavaScript Engine được áp dụng để lập trình server với Node.js runtime system.

Một số phần mềm cũng áp dụng JavaScript Engine để lập trình phần mềm bằng JavaScript như MongoDB…

 

Okay, Done!

References:

https://en.wikipedia.org/wiki/JavaScript_engine

Leave a Reply

Your email address will not be published. Required fields are marked *