ECMAScript là gì?


118

Trong Visual Studio khi tôi đặt loại tập lệnh của mình thành JavaScript, điều này xuất hiện dưới dạng một tùy chọn trong intellisense.

Một tìm kiếm nhanh chóng trên Google cho ra kết quả khập khiễng, khiến tôi tin rằng cái này không phổ biến lắm.

  • Nó là gì?
  • Có ai sử dụng nó không? (<script type="text/ecmascript">)
  • Tại sao?


Biết được sự khác biệt giữa ECMAScript và Javascript cũng giúp hiểu ECMAScript.
RBT

Câu trả lời:


169

JavaScript là một tập hợp con của ECMAScript. JavaScript về cơ bản là ECMAScript cốt lõi của nó nhưng được xây dựng dựa trên nó. Các ngôn ngữ như ActionScript, JavaScript, JScript đều sử dụng ECMAScript làm cốt lõi của nó. Để so sánh, AS / JS / JScript là 3 chiếc xe khác nhau, nhưng chúng đều sử dụng cùng một động cơ ... ngoại thất của mỗi chiếc đều khác nhau, và đã có một số sửa đổi được thực hiện cho mỗi chiếc để làm cho nó trở nên độc đáo.

Lịch sử là, Brendan Eich đã tạo ra Mocha, trở thành LiveScript và sau này là JavaScript. Netscape đã trình bày JavaScript cho Ecma International , tổ chức phát triển các tiêu chuẩn và nó được đổi tên thành ECMA-262 hay còn gọi là ECMAScript.

Điều quan trọng cần lưu ý là "JavaScript" của Brendan Eich không giống với JavaScript là phương ngữ của ECMAScript. Ông đã xây dựng ngôn ngữ cốt lõi được đổi tên thành ECMAScript, ngôn ngữ này khác với JavaScript mà các nhà cung cấp trình duyệt triển khai ngày nay.

http://en.wikipedia.org/wiki/ECMAScript


33
Điều đó không làm cho Javascript trở thành một tập hợp con của ECMAScript, nếu ECMAScript là cốt lõi?
Ryan Amos,

15
JavaScript (lịch sử) có những thứ mà ECMAScript không có. JavaScript (trong lịch sử cố gắng) có mọi thứ mà ECMAScript có. Do đó, bài đăng là chính xác, ECMAScript là một tập con của JavaScript. Tuy nhiên, cả hai được giữ khá gần nhau (trong khi ActionScript không còn thực sự được coi là một ngôn ngữ ECMAScript nữa, nó đã khác biệt rất nhiều, mặc dù nó đã có nguồn gốc từ nó). Các thuật ngữ ES và JS gần như có thể hoán đổi cho nhau.
Nathan Wall,

22
Tôi không nghĩ là chính xác khi nói rằng "ECMAScript là một tập hợp con của JavaScript." Thay vào đó, bài viết trên Wikipedia mà bạn trích dẫn chỉ ra rằng ECMAScript là một tiêu chuẩn và JavaScript là cách triển khai nổi tiếng của tiêu chuẩn đó (với phần mở rộng) .
DavidRR

2
Tôi nghĩ bạn muốn nóiECMAScript is a superset of Javascript
Callat

6
Bởi vì Javascript triển khai ECMAScript và cũng xây dựng trên nó, tôi sẽ nói rằng Javascript là ở đó cho một tập hợp siêu ECMAScript.
RayLoveless, 14/07/17


32

ECMAScript = ES:

  • ECMAScript là một Tiêu chuẩn cho một ngôn ngữ kịch bản.

  • Các ngôn ngữ như Javascript dựa trên tiêu chuẩn ECMAScript.

  • Tiêu chuẩn ECMA dựa trên một số công nghệ ban đầu, nổi tiếng nhất là JavaScript (Netscape) và JScript (Microsoft).

  • ECMA có nghĩa là Hiệp hội các nhà sản xuất máy tính Châu Âu


Mặt khác:


JavaScript = JS:

  • JavaScript là cách triển khai phổ biến nhất của Tiêu chuẩn ECMAScript.

  • Các tính năng cốt lõi của Javascript dựa trên tiêu chuẩn ECMAScript, nhưng Javascript cũng có các tính năng bổ sung khác không có trong tiêu chuẩn / đặc tả ECMA.

  • ActionScript và JScript là các ngôn ngữ khác triển khai ECMAScript.

  • JavaScript đã được đệ trình lên ECMA để tiêu chuẩn hóa nhưng do các vấn đề về nhãn hiệu với tên Javascript, tiêu chuẩn này được gọi là ECMAScript.

  • Mọi trình duyệt đều có trình thông dịch JavaScript.


Để biết thêm chi tiết về kiểm tra này, câu trả lời đầy đủ của tôi ở đây Sự khác biệt giữa JavaScript và ECMAScript là gì?


hầu hết mọi trình duyệt đều có hỗ trợ JavaScript, nhưng có rất nhiều trình duyệt CLI như liên kết và lynx không hỗ trợ, bên cạnh những trình duyệt này có: links2, w3m, elinks và edbrowse. Phần lớn các trình duyệt CLI cũng không hỗ trợ JS.
Cassio Seffrin

16

ECMA là viết tắt của - Hiệp hội các nhà sản xuất máy tính Châu Âu. ECMAScript là một tiêu chuẩn cho một ngôn ngữ kịch bản. Nó chỉ định các tính năng cốt lõi mà một ngôn ngữ kịch bản nên cung cấp và cách triển khai các tính năng đó. Javascript ban đầu được tạo ra tại Netscape, và họ muốn chuẩn hóa ngôn ngữ này. Vì vậy, họ đã gửi ngôn ngữ này lên Hiệp hội các nhà sản xuất máy tính Châu Âu (ECMA) để chuẩn hóa. Tuy nhiên, có những vấn đề về nhãn hiệu với tên Javascript và tiêu chuẩn này được gọi là ECMAScript, cũng là cái tên mà nó giữ ngày nay.

Vì vậy, bạn có thể sử dụng bất kỳ ngôn ngữ kịch bản nào triển khai tiêu chuẩn ECMA vì trình duyệt web hỗ trợ thông dịch ECMAScript khi bạn chỉ định ( <script type="text/ecmascript">).


2

ECMA là tổ chức hóa JavaScript độc lập. Họ đặt tên ngôn ngữ là ECMAScript, tuy nhiên "JavaScript" là thuật ngữ giành chiến thắng trong "cuộc thi tên"


1

Đây là một cái nhìn khác về chủ đề này. Nó ít nhiều từ kinh nghiệm, tôi không thể trích dẫn bất cứ điều gì. Bất kỳ trình xác thực JavaScript nào và mọi người làm việc với JavaScript sẽ cho bạn biết rằng

alert("hello World");

là JavaScript hợp lệ. Và tôi cũng đồng ý.

Tuy nhiên, trình xác thực ECMAScript có thể sẽ cho bạn biết nó không hợp lệ, vì alert () không phải là một phần của ECMAScript, mà là một tính năng thường thấy của JavaScript dành cho trình duyệt. Có nhiều tính năng của JavaScript, chỉ có ý nghĩa trong môi trường trình duyệt, fi window.navigator, window.document, WebSocket, Navigator.geolocation. Một số người thậm chí còn nói rằng đây không phải là một phần của JavaScript mà là một phần của HTML5, điều này không đúng, bởi vì HTML5 chỉ là ngôn ngữ đánh dấu. Tuy nhiên, những tính năng mới lạ mắt này thường được gọi là HTML5, ngay cả khi chúng được triển khai bằng JavaScript.

JavaScript cũng có thể được sử dụng cho kịch bản phía máy chủ. Sau đó, tất cả các định vị địa lý hoặc apis phương tiện không có ý nghĩa. Vì vậy, JavaScript cho kịch bản phía máy chủ lại gần giống với ECMAScript, vốn không có các tính năng trình duyệt điển hình này.

Tôi thực sự không thể tìm ra liệu đối tượng Math (ví dụ: Math.sqrt (9)) có phải là một phần của ECAMScript hay không, hay liệu ECMAScript thực sự chỉ xác định cú pháp của ngôn ngữ và không có chức năng nào được xây dựng. Nhưng một trình xác thực ECMAScript đã chấp nhận Math.sqrt (9) là ECMAScript hợp lệ, trong khi var test = window.document; không xác thực được ECMA.

Mặc dù liên kết sau liên kết nó với một tài liệu JavaScript, theo tôi đây là bản xây dựng trong bộ tính năng (đối tượng và chức năng) của ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Vì vậy, theo ý kiến ​​của tôi, JavaScript được gắn rất chặt chẽ với các trình duyệt, trong khi ECMAScript thực sự chỉ có một bộ chức năng rất cơ bản (nếu có).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.