Sự khác biệt giữa JavaScript và ECMAScript là gì?


462

Sự khác biệt giữa ECMAScript và JavaScript là gì? Từ những gì tôi đã suy luận, ECMAScript là tiêu chuẩn và JavaScript là triển khai. Điều này có đúng không?

Câu trả lời:


183

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.


9
Điều thực sự tuyệt vời là ánh xạ rõ ràng giữa các phiên bản JavaScript và ECMAScript, ví dụ ES5 tương ứng với JS1.5, v.v ... Tôi đã tìm thấy nó: en.wikipedia.org/wiki/JavaScript#Versions
Sam Joseph

2
@Sam - cập nhật liên kết của Sam: en.wikipedia.org/wiki/JavaScript#Version_history
Rop

65
Bị hạ bệ và đánh giá cao của Yang Li, vì câu trả lời này nói rất ít và về cơ bản chỉ bạn đến Wikipedia. Câu trả lời của Yang Li chi tiết và hữu ích hơn nhiều. Ngoài ra, cho dù một trong những ngôn ngữ / tiêu chuẩn và phương ngữ khác, hoặc thực hiện, vv là mở cho ý kiến, và không thực tế, từ những gì tôi hiểu. Trong khi câu trả lời này làm cho nó có vẻ là sự thật. Đúng nếu tôi đã sai lầm. Trong thực tế, tôi sẽ lập luận rằng đề xuất của câu trả lời này thậm chí không phải là sự đồng thuận phổ biến. Như hầu hết đều thấy ECMAScript có tiêu chuẩn và JavaScript là ngôn ngữ.
redfox05

1
@Rop - Cập nhật liên kết đó: en.wikipedia.org/wiki/ECMAScript#Version_corr phóng đại
HDave

5
Tôi không đồng ý. ECMAScript là đặc điểm kỹ thuật. JS, JScript, ActionScript là các ngôn ngữ triển khai đặc tả đó.
adripanico

611

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)


1
Đối với những người quan tâm đến cách biên dịch / dịch mã tiêu chuẩn ES2015 mới xuống mã ECMAScript 5, bạn sẽ muốn kiểm tra Babel (trước đây là 6to5) có sẵn tại babeljs.io hoặc theo dõi tại github.com/google/traceur-compiler . Với các công cụ có sẵn này, không có lý do gì bạn không thể bắt đầu viết "JavaScript mới" ngay bây giờ và tận dụng tất cả các bổ sung mới nhất cho ngôn ngữ.
LWurm

1
Tôi đã không biết rằng Lua thực hiện ECMAScript. Tôi dường như không thể tìm thấy bất cứ điều gì chứng thực điều đó. Nguồn của bạn là gì?
battmanz

2
@YangLi Bạn có đồng ý với câu trả lời của jerone bên dưới không, rằng các ngôn ngữ ECMAScript không bao gồm API DOM mà tất cả chúng ta sử dụng khi viết JavaScript thuần?
theJollySin

11
@theJollySin Yep, anh ấy đúng. ECMAScript không được thiết kế dành riêng cho trình duyệt nên các phương thức như document.getEuityById và các API DOM khác không phải là một phần của tiêu chuẩn. Chúng thuộc các tiêu chuẩn WHATWG, cùng với một số phương pháp cụ thể khác của trình duyệt như localStorage, v.v. Nếu bạn lấy nút và không sử dụng bất kỳ mô-đun đã nhập nào thì bạn chỉ có API ECMAScript.
Yang Li

1
Làm thế nào nhiều ngôn ngữ có thể thực hiện cùng một tiêu chuẩn và không phải là cùng một ngôn ngữ? Tiêu chuẩn xác định ngôn ngữ. Nếu một số ngôn ngữ thực hiện tiêu chuẩn C ++, nó được gọi là C ++, không phải thứ gì khác (chính xác là nó thực hiện tiêu chuẩn đó). Vì vậy, tôi vẫn có cùng một câu hỏi ... sự khác biệt là gì?
Neme

157

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.


3
" 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 " Bạn có thể vui lòng cho một số ví dụ cho các tính năng đó không?
Aruna Herath

1
" JavaScript là các triển khai phổ biến nhất của Tiêu chuẩn ECMAScript. " Sau đó, tôi có thể tìm nguồn gốc của triển khai này được gọi là 'JavaScript' ở đâu?
bzeaman

7
Với câu hỏi của tôi, tôi đang cố gắng chỉ ra một sự không chính xác tiềm ẩn trong cách diễn đạt câu trả lời. Từ "thực hiện" được sử dụng. JavaScript được cho là ' triển khai phổ biến nhất '. Việc thực hiện là " hiện thực hóa thông số kỹ thuật". Mà chuyển thành phần mềm . Vì vậy, sau đó tôi tự hỏi phần mềm này được gọi là 'JavaScript' ở đâu.
bzeaman

4
@Corrodias Tôi đồng ý rằng nó giống như chọn nit, nhưng tôi nghĩ rằng nó hợp lý để làm khi câu trả lời là về việc xác định mọi thứ. JavaScript là một ngôn ngữ, ngày nay được chuẩn hóa bởi ECMAscript có thể so sánh với cách C là ngôn ngữ được tiêu chuẩn hóa theo tiêu chuẩn ISO. Một thuật ngữ cho JavaScript sau đó chỉ đơn giản là "ngôn ngữ", không có gì hơn.
bzeaman

4
Các bản tóm tắt của ES5, ES2015 và BabelJS thực sự xóa tan rất nhiều sự nhầm lẫn mà người ta có thể có khi bước vào thế giới kịch bản JS ngày nay từ lập trình phía máy chủ. Câu trả lời chính xác. +1
RBT

45

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)


7
Vì vậy, những gì trong node.js không phải là JavaScript? Bởi vì nó không có API DOM.
Aruna Herath

4
Đúng rồi. "Node.js được xây dựng dựa trên các phiên bản V8 hiện đại." & "V8 triển khai ECMAScript như được chỉ định trong ECMA-262, phiên bản thứ 5 ..." & "Tuy nhiên, DOM không được cung cấp bởi công cụ JavaScript mà thay vào đó là trình duyệt. Điều tương tự cũng đúng với V8 V8 Google Chrome cung cấp DOM. " (Nguồn: nodejs.org/en/docs/es6 & github.com/v8/v8/wiki/Intributiontion )
jerone

7
@jerone Tôi đang sử dụng phiên bản ECMAScript nào khi tôi viết mã JavaScript? Nó thay đổi theo trình duyệt hoặc thư viện?
theJollySin

4
Bạn có thể đưa ra một tài liệu tham khảo JavaScript = ECMAScript + DOM API;?
Koray Tugay

2
@ koray-tugay Ngoại trừ ở đây, không có nhiều tài liệu về chính xác JavaScript là gì. Tôi đoán đó là lý do tại sao câu hỏi này rất phổ biến. "Công thức" 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.
giật

42

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" )


12
Netscape và Microsoft thực sự đã hợp nhau một lần?!
Cole Johnson

2
Tôi nghĩ Brandon muốn biến JS thành một tiêu chuẩn trước Microsoft và người duy nhất anh ta có thể tìm thấy là ECMA.
Joe Simmons

30

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?

  • Không, Javascript không chính xác tương đương với 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.

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?

  • Có, có những ngôn ngữ khác ngoài JavaScript cũng triển khai Tiêu chuẩn ECMAScript làm cốt lõi.
  • ActionScript (được sử dụng bởi Adobe Flash) và JScript (được Microsoft sử dụng) đều là các ngôn ngữ triển khai tiêu chuẩn ECMAScript.

Tại sao lại gọi là ECMAScript?

  • Javascript ban đầu được tạo ra tại Netscape và họ muốn chuẩn hóa ngôn ngữ. Vì vậy, họ đã đệ trình ngôn ngữ để các E uropean C omputer M anufacturer của Một ssociation (ECMA) cho tiêu chuẩn hóa.
  • Nhưng, đã có vấn đề về nhãn hiệu với tên Javascript và tiêu chuẩn được gọi là ECMAScript, đây cũng là tên mà nó giữ.
  • Do các vấn đề về nhãn hiệu, phiên bản ngôn ngữ của Microsoft được gọi là JScript - mặc dù JScript là, ở cốt lõi của nó, cùng ngôn ngữ với Javascript.

Có các khóa học về JS đơn giản và ES6 JS. Chúng ta nên dùng cái nào? ES6 có được sử dụng nhiều hơn trong cài đặt chuyên nghiệp không? Cảm ơn.
MasterJoe2

16

Các phiên bản JavaScript khác nhau là các triển khai của tiêu chuẩn ECMAScript.


11

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)


10

Theo hiểu biết của tôi, ECMAScript là "Lý thuyết" hoặc "Đặc tả" và Javascript là "Thực tiễn" hoặc "Thực hiện".


10

JavaScript ngôn ngữ ECMAScript.

ECMAScript không nhất thiết phải là JavaScript.


7

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.


5

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.


3

ECMAScript là một tiêu chuẩn cho JavaScrip t, hãy xem các tuyên bố này từ MDN :

nhập mô tả hình ảnh ở đây

JavaScript

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.


Bản thảo

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


3

Đâ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 JavaScripttrong 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 ECMAScriptduy 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.


2

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.


1
Tôi không gặp vấn đề gì với từ ECMAscript ... bạn đã bao giờ nghĩ rằng thật lạ khi nói MPEG, thay vì video chưa?
ryansstack

7
Haha. Không phải Brendan Eich đã nói ECMAScript nghe giống như một bệnh ngoài da sao? :-)
Nosredna

7
Sun sở hữu từ Java, không phải JavaScript.
James R. Clayton

1
@ JamesR.Clayton JavaScript được tạo tại Netscape trong những ngày đầu của Web và về mặt kỹ thuật, JavaScript JavaScriptiết 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).
Koray Tugay

1

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.

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.