Câu trả lời:
ECMAScript là ngôn ngữ, trong khi JavaScript, JScript và thậm chí ActionScript 3 được gọi là "phương ngữ". Wikipedia làm sáng tỏ điều này.
Tôi nghĩ rằng một bài học lịch sử nhỏ là do.
JavaScript ban đầu được đặt tên là Mocha và đổi thành Livescript nhưng cuối cùng trở thành JavaScript.
Điều quan trọng cần lưu ý là JavaScript xuất hiện trước ECMAscript và lịch sử sẽ cho bạn biết lý do.
Để bắt đầu lại từ đầu, JavaScript đã lấy tên của nó từ Java và ban đầu Brendan Eich (người tạo ra JS) đã được yêu cầu phát triển một ngôn ngữ giống với Java cho web cho Netscape.
Tuy nhiên, Eich đã quyết định rằng Java quá phức tạp với tất cả các quy tắc của nó và vì vậy đã bắt đầu tạo ra một ngôn ngữ đơn giản hơn mà ngay cả người mới bắt đầu cũng có thể viết mã. Điều này thể hiện rõ ở những điều như việc thư giãn cần phải có dấu chấm phẩy.
Sau khi ngôn ngữ hoàn tất, nhóm tiếp thị của Netscape đã yêu cầu Sun cho phép họ đặt tên cho JavaScript là một diễn viên tiếp thị và do đó, tại sao hầu hết những người chưa bao giờ sử dụng JavaScript đều nghĩ rằng nó có liên quan đến Java.
Khoảng một hoặc hai năm sau khi phát hành JavaScript trên trình duyệt, IE của Microsoft đã sử dụng ngôn ngữ này và bắt đầu thực hiện các triển khai của riêng mình như JScript. Đồng thời, IE đang thống trị thị trường và không lâu sau khi Netscape phải đóng cửa dự án của mình.
Trước khi Netscape đi xuống, họ đã quyết định bắt đầu một tiêu chuẩn sẽ hướng dẫn đường dẫn của JavaScript, được đặt tên là ECMAScript.
ECMAScript đã có một vài bản phát hành và vào năm 1999, họ đã phát hành phiên bản cuối cùng của họ (ECMAScript 3) trước khi họ ngủ đông trong 10 năm tiếp theo. Trong 10 năm này, Microsoft đã thống trị các cảnh nhưng đồng thời họ không cải thiện sản phẩm của mình và do đó Firefox ra đời (dẫn đầu là Eich) và cả đống trình duyệt khác như Chrome, Opera.
ECMAScript phát hành Phiên bản thứ 5 vào năm 2009 (phiên bản thứ 4 đã bị bỏ rơi) với các tính năng như chế độ nghiêm ngặt. Kể từ đó, ECMAScript đã đạt được rất nhiều động lực và dự kiến phát hành Phiên bản thứ 6 trong một vài tháng kể từ bây giờ với những thay đổi lớn nhất từ trước đến nay.
Bạn có thể sử dụng danh sách các tính năng cho ECMAScript 6 tại đây http: // Khangax.github.io/es5-compat-table/es6/ và cả hỗ trợ trình duyệt. Bạn thậm chí có thể bắt đầu viết Ecmascript 6 giống như bạn làm với CoffeeScript và sử dụng trình biên dịch để biên dịch xuống Ecmascript 5.
Cho dù ECMAScript là ngôn ngữ và JavaScript là một phương ngữ có thể tranh cãi, nhưng không quan trọng. Nếu bạn tiếp tục nghĩ như vậy nó có thể làm bạn bối rối. Không có trình biên dịch nào có thể chạy ECMAScript và tôi tin rằng JavaScript được coi là Ngôn ngữ thực hiện một tiêu chuẩn gọi là ECMAScript.
Ngoài ra còn có các ngôn ngữ đáng chú ý khác triển khai ECMAScript như ActionScript (được sử dụng cho Flash)
ECMAScript = ES:
ECMAScript là một Tiêu chuẩn cho các ngôn ngữ kịch bản.
Các ngôn ngữ như Javascript dựa trên tiêu chuẩn ECMAScript.
ECMA Standard dựa trên một số công nghệ có nguồn gốc, 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
JavaScript = JS:
JavaScript là 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 thông số / tiêu chuẩn ECMA.
ActionScript và JScript là các ngôn ngữ khác triển khai ECMAScript.
JavaScript đã được gửi tới ECMA để chuẩn hóa nhưng do vấn đề nhãn hiệu với tên Javascript, tiêu chuẩn đã được gọi là ECMAScript.
Mỗi trình duyệt có một trình thông dịch JavaScript.
ES5 = ECMAScript 5:
ES5 là phiên bản của ECMAScript (phiên bản cũ / hiện tại).
ES5 là JavaScript mà bạn biết và sử dụng trong trình duyệt ngày nay.
ES5 không yêu cầu một bước xây dựng (bộ chuyển đổi) để chuyển đổi nó thành thứ gì đó sẽ chạy trong các trình duyệt ngày nay.
Phiên bản ECMAScript 5 đã hoàn thành vào tháng 12 năm 2009, các phiên bản mới nhất của tất cả các trình duyệt chính (Chrome, Safari, Firefox và IE) đã triển khai phiên bản 5.
Phiên bản 5.1 đã được hoàn thành vào tháng 6 năm 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 là phiên bản của ECMAScript (phiên bản mới / tương lai).
Chính thức tên ES2015 nên được sử dụng thay vì ES6.
ES6 sẽ khắc phục nhiều thiếu sót ngôn ngữ cốt lõi được giải quyết trong TypeScript và CoffeeScript.
ES6 là lần lặp tiếp theo của JavaScript, nhưng nó không chạy trong các trình duyệt ngày nay.
Có khá nhiều bộ chuyển đổi sẽ xuất ES5 để chạy trong trình duyệt.
BabelJS:
BabelJS là trình chuyển đổi phổ biến nhất chuyển đổi JavaScript ES6 mới thành JavaScript cũ ES5.
BabelJS cho phép viết thế hệ JavaScript tiếp theo ngày hôm nay (có nghĩa là ES2015).
BabelJS chỉ cần lấy tệp ES2015 và chuyển đổi thành tệp ES5.
Các phiên bản trình duyệt hiện tại có thể hiểu mã JavaScript mới (ES2015), ngay cả khi chúng chưa hỗ trợ.
TypeScript và CoffeeScript:
Cả hai đều cung cấp đường cú pháp trên ES5 và sau đó được dịch sang JavaScript tuân thủ ES5.
Bạn viết TypeScript hoặc CoffeeScript sau đó bộ chuyển đổi biến nó thành ES5 JavaScript.
JavaScript = ECMAScript + DOM + BOM ;
Đặc tả ngôn ngữ ECMAScript® xác định tất cả logic để tạo và chỉnh sửa các đối tượng, mảng, số, v.v ...
DOM ( D ocument O bject M odel ) cho phép giao tiếp với các tài liệu HTML / XML (ví dụ document.getElementById('id');
).
BOM ( B rower O bject M odel ) là hệ thống phân cấp của các đối tượng trình duyệt (ví dụ: đối tượng vị trí, đối tượng lịch sử, các thành phần biểu mẫu).
Lịch sử đặt tên JavaScript:
Mocha ► LiveScript ► JavaScript ► (một phần của kết quả JS) ECMA-262 ► ECMAScript ► JavaScript (bao gồm ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
chỉ dựa trên các điều khoản được thống nhất theo tài liệu mà JavaScript bao gồm.
Về mặt kỹ thuật ECMAScript là ngôn ngữ mà mọi người đang sử dụng và triển khai - đó là đặc tả được tạo ra từ nhiều năm trước khi Netscape và Microsoft ngồi xuống và cố gắng chuẩn hóa tập lệnh giữa JavaScript (ngôn ngữ kịch bản của Netscape) và JScript (của Microsoft).
Sau đó, tất cả các công cụ này đang triển khai ECMAScript, tuy nhiên JavaScript (tên) hiện đang tồn tại vì cả lý do đặt tên truyền thống và như một thuật ngữ tiếp thị của Mozilla cho các tiện ích mở rộng không chuẩn của chúng (mà chúng muốn có thể thực sự là "phiên bản" )
ECMAScript tức là ES là gì?
ECMAScript là một tiêu chuẩn cho ngôn ngữ kịch bản và ngôn ngữ Javascript dựa trên tiêu chuẩn ECMAScript.
Javascript có giống hệt như ECMAScript không?
JavaScript = ECMAScript + API DOM;
API DOM như: document.getElementById('id');
Các ngôn ngữ khác có sử dụng tiêu chuẩn ECMAScript không?
Tại sao lại gọi là ECMAScript?
Tôi biết đây là một bài viết cũ nhưng hy vọng điều này sẽ giúp được ai đó.
Trong những năm 1990, các phiên bản js khác nhau bắt đầu xuất hiện như javascript từ Netscape, tập lệnh Js của Microsoft. Vì vậy, ecmascript đã được giới thiệu như là một tiêu chuẩn. Nhưng ecmascript chỉ tạo thành một phần của javascript, trong đó chỉ định cú pháp cốt lõi, loại, đối tượng, v.v. Có lẽ điều đó giải thích việc triển khai javascript không nhất quán trên diff. trình duyệt
Tham khảo - Classicalx (Javascript chuyên nghiệp dành cho nhà phát triển web)
JavaScript là ngôn ngữ ECMAScript.
ECMAScript không nhất thiết phải là JavaScript.
Câu trả lời hiện tại diễn giải ý chính khá tốt.
Điểm chính là ECMAScript là ngôn ngữ trừu tượng trần trụi, không có bất kỳ tiện ích mở rộng cụ thể nào cho tên miền, bản thân nó cũng vô dụng. Đặc tả chỉ xác định ngôn ngữ và các đối tượng cốt lõi của nó.
Trong khi JavaScript và ActionScript và các phương ngữ khác thêm thư viện miền cụ thể vào đó, vì vậy bạn có thể sử dụng nó cho một cái gì đó có ý nghĩa.
Có nhiều công cụ ECMAScript , một số trong số chúng là nguồn mở, một số khác là độc quyền. Bạn có thể liên kết chúng vào chương trình của mình sau đó thêm các hàm riêng vào đối tượng toàn cục để chương trình của bạn trở thành tập lệnh. Mặc dù hầu hết chúng thường được sử dụng trong các trình duyệt.
Javascript là tên ban đầu, có nghĩa là tận dụng sự phổ biến của java. ECMA là cơ quan tiêu chuẩn giám sát tiêu chuẩn cuối cùng đã được đưa ra để các tên gần tương đương nhau.
Việc triển khai có các tên khác, như V8 hoặc Rhino, v.v.
ECMAScript là một tiêu chuẩn cho JavaScrip t, hãy xem các tuyên bố này từ MDN :
JavaScript (JS) là ngôn ngữ lập trình được biên dịch nhẹ hoặc do JIT biên dịch với các hàm hạng nhất. Mặc dù được biết đến nhiều nhất là ngôn ngữ kịch bản cho các trang Web, nhiều môi trường không có trình duyệt cũng sử dụng nó, chẳng hạn như node.js, Apache CouchDB và Adobe Acrobat. JavaScript là một ngôn ngữ động, đa mô hình, dựa trên nguyên mẫu, hỗ trợ các kiểu hướng đối tượng, mệnh lệnh và khai báo (ví dụ lập trình hàm). Đọc thêm về JavaScript.
Tiêu chuẩn cho JavaScript là ECMAScript . Kể từ năm 2012, tất cả các trình duyệt hiện đại đều hỗ trợ đầy đủ ECMAScript 5.1. Các trình duyệt cũ hơn hỗ trợ ít nhất ECMAScript 3. Vào ngày 17 tháng 6 năm 2015, ECMA International đã xuất bản phiên bản chính thứ sáu của ECMAScript, được gọi chính thức là ECMAScript 2015, và ban đầu được gọi là ECMAScript 6 hoặc ES6. Kể từ đó, các tiêu chuẩn ECMAScript đang trong chu kỳ phát hành hàng năm. Tài liệu này đề cập đến phiên bản dự thảo mới nhất, hiện đang là ECMAScript 2018.
Để biết thêm thông tin, hãy truy cập vào đây
Đây là những phát hiện của tôi:
JavaScript: Hướng dẫn dứt khoát , được viết bởi David Flanagan cung cấp một lời giải thích rất súc tích:
JavaScript được tạo ra tại Netscape vào những ngày đầu của Web và về mặt kỹ thuật, "JavaScript" là nhãn hiệu được cấp phép từ Sun microsystems (nay là Oracle) được sử dụng để mô tả ngôn ngữ của Netscape (nay là Mozilla). Netscape đã gửi ngôn ngữ để chuẩn hóa cho ECMA và vì các vấn đề về nhãn hiệu, phiên bản tiêu chuẩn của ngôn ngữ đã bị kẹt với tên khó xử "ECMAScript". Vì những lý do thương hiệu tương tự, phiên bản ngôn ngữ của Microsoft được chính thức gọi là "JScript". Trong thực tế, mọi người đều gọi ngôn ngữ JavaScript.
Một bài đăng trên blog của Microsoft dường như đồng ý với những gì Flanagan giải thích bằng cách nói ..
ECMAScript là tên chính thức của ngôn ngữ JavaScript mà tất cả chúng ta đều biết và yêu thích.
.. điều này khiến tôi nghĩ rằng tất cả các lần xuất hiện JavaScript
trong bài đăng tham khảo này (bởi Microsoft một lần nữa) phải được thay thế bằng ECMASCript
. Họ thực sự dường như phải cẩn thận với việc sử dụng ECMAScript
duy nhất trong này trang tài liệu, gần đây hơn và kỹ thuật hơn.
w3schools.com dường như đồng ý với các định nghĩa trên:
JavaScript được Brendan Eich phát minh vào năm 1995 và trở thành tiêu chuẩn ECMA vào năm 1997. ECMA-262 là tên chính thức của tiêu chuẩn. ECMAScript là tên chính thức của ngôn ngữ.
Chìa khóa ở đây là: tên chính thức của ngôn ngữ .
Nếu bạn kiểm tra các trang phiên bản JavaScript của Mozilla , bạn sẽ gặp phải tuyên bố sau:
Không dùng nữa Phiên bản rõ ràng và chọn tham gia các tính năng ngôn ngữ là đặc trưng của Mozilla và đang trong quá trình xóa. Firefox 4 là phiên bản cuối cùng đề cập đến phiên bản JavaScript (1.8.5). Với các tiêu chuẩn ECMA mới, các tính năng ngôn ngữ JavaScript hiện thường được đề cập với định nghĩa ban đầu của chúng trong Phiên bản ECMA-262 như ECMAScript 2015.
và khi bạn thấy các ghi chú phát hành gần đây, bạn sẽ luôn thấy tham chiếu đến các tiêu chuẩn ECMAScript, chẳng hạn như:
Thuộc tính Symbol.toStringTag của ES2015 đã được triển khai (lỗi 1114580).
Các phương thức ES2015 TypedArray.prototype.toString () và TypedArray.prototype.toLocaleString () đã được triển khai (lỗi 1121938).
Mozilla Web Docs cũng có một trang giải thích sự khác biệt giữa ECMAScript và JavaScript:
Tuy nhiên, thuật ngữ ô "JavaScript" như được hiểu trong ngữ cảnh trình duyệt web chứa một số yếu tố rất khác nhau. Một trong số đó là ngôn ngữ cốt lõi (ECMAScript), một ngôn ngữ khác là bộ sưu tập các API Web, bao gồm DOM (Mô hình đối tượng tài liệu).
Phần kết luận
Theo hiểu biết của tôi, mọi người sử dụng từ JavaScript một cách tự do để tham khảo đặc tả ECMAScript cốt lõi.
Tôi có thể nói, tất cả các triển khai JavaScript hiện đại (hoặc Công cụ JavaScript) trên thực tế là các triển khai ECMAScript. Kiểm tra định nghĩa của Động cơ V8 từ Google, ví dụ:
V8 là công cụ JavaScript hiệu suất cao mã nguồn mở của Google, được viết bằng C ++ và được sử dụng trong Google Chrome, trình duyệt nguồn mở từ Google và trong Node.js, cùng với các công cụ khác. Nó thực hiện ECMAScript như được chỉ định trong ECMA-262.
Họ dường như sử dụng từ JavaScript và ECMAScript thay thế cho nhau và tôi có thể nói nó thực sự là một công cụ ECMAScript?
Vì vậy, hầu hết các Công cụ JavaScript thực sự đang triển khai tiêu chuẩn ECMAScript, nhưng thay vì gọi chúng là các công cụ ECMAScript, chúng tự gọi chúng là Công cụ JavaScript. Câu trả lời này cũng hỗ trợ cách tôi nhìn nhận tình hình.
Tôi nghi ngờ chúng ta đã từng sử dụng từ "ECMAScript" nếu không phải vì cái tên "JavaScript" thuộc sở hữu của Sun. Đối với tất cả ý định và mục đích, ngôn ngữ là JavaScript. Bạn không đến hiệu sách để tìm sách ECMAScript, phải không?
Thật quá đơn giản để nói rằng "JavaScript" là cách triển khai. JScript là triển khai của Microsoft.
JavaScript là một nhánh của các ngôn ngữ được hình thành xung quanh tiêu chuẩn ECMAScript. Tôi tin rằng ECMA là Hiệp hội các nhà sản xuất máy tính châu Âu, không phải điều này thực sự có liên quan hay gì cả.
Đừng quên một ngôn ngữ phổ biến khác được hình thành xung quanh tiêu chuẩn ECMA Script là ActionScript, được sử dụng trong Adobe Flash / Flex.