Co to jest ECMAScript?


118

W programie Visual Studio, gdy ustawiam typ skryptu na JavaScript, pojawia się to jako opcja w Intellisense.

Szybkie wyszukiwanie w Google dało kiepskie wyniki, co doprowadziło mnie do przekonania, że ​​nie jest to zbyt popularne w użyciu.

  • Co to jest?
  • Czy ktoś go używa? (<script type="text/ecmascript">)
  • Czemu?


Znajomość różnicy między ECMAScript i Javascript pomaga również zrozumieć ECMAScript.
RBT

Odpowiedzi:


169

JavaScript jest podzbiorem ECMAScript. JavaScript jest w zasadzie ECMAScript w swej istocie, ale jest na nim oparty. Języki, takie jak ActionScript, JavaScript, JScript, wykorzystują ECMAScript jako rdzeń. Dla porównania, AS / JS / JScript to 3 różne samochody, ale wszystkie używają tego samego silnika ... jednak każdy z ich elementów zewnętrznych jest inny, a każdy z nich został poddany kilku modyfikacjom, aby uczynić go wyjątkowym.

Historia jest taka, że ​​Brendan Eich stworzył Mocha, który stał się LiveScriptem, a później JavaScript. Firma Netscape przedstawiła JavaScript firmie Ecma International , która opracowuje standardy, i została przemianowana na ECMA-262 aka ECMAScript.

Należy zauważyć, że „JavaScript” Brendana Eicha to nie ten sam JavaScript, który jest dialektem ECMAScript. Zbudował rdzeń języka, który został przemianowany na ECMAScript, który różni się od JavaScript, który producenci przeglądarek implementują obecnie.

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


33
Czy to nie sprawia, że ​​JavaScript jest podzbiorem ECMAScript, jeśli ECMAScript jest rdzeniem?
Ryan Amos

15
JavaScript (historycznie) ma rzeczy, których nie ma ECMAScript. JavaScript (historycznie stara się) mieć wszystko, co ma ECMAScript. Dlatego post jest poprawny, ECMAScript jest podzbiorem JavaScript. Jednak oba są dość blisko siebie (chociaż ActionScript nie jest już tak naprawdę uważany za język ECMAScript, tak bardzo się od niego rozdzielił, chociaż ma w nim swoje korzenie). Terminy ES i JS są prawie zamienne.
Nathan Wall

22
Nie sądzę, aby słuszne było stwierdzenie, że „ECMAScript to podzbiór JavaScript”. Zamiast tego cytowany artykuł z Wikipedii wskazuje, że ECMAScript jest standardem, a JavaScript jest dobrze znaną implementacją tego standardu (z rozszerzeniami) .
DavidRR

2
Myślę, że chciałeś powiedziećECMAScript is a superset of Javascript
Callat

6
Ponieważ Javascript implementuje ECMAScript, a także bazuje na nim, powiedziałbym, że Javascript jest z tego powodu nadzbiorem ECMAScript.
RayLoveless


32

ECMAScript = ES:

  • ECMAScript to standard dla języków skryptowych.

  • Języki takie jak Javascript są oparte na standardzie ECMAScript.

  • Standard ECMA jest oparty na kilku pierwotnych technologiach, z których najbardziej znane to JavaScript (Netscape) i JScript (Microsoft).

  • ECMA oznacza Europejskie Stowarzyszenie Producentów Komputerów


Z drugiej strony:


JavaScript = JS:

  • JavaScript to najpopularniejsza implementacja standardu ECMAScript.

  • Podstawowe funkcje Javascript są oparte na standardzie ECMAScript, ale Javascript ma również inne dodatkowe funkcje, których nie ma w specyfikacji / standardzie ECMA.

  • ActionScript i JScript to kolejne języki implementujące ECMAScript.

  • JavaScript został przesłany do ECMA w celu standaryzacji, ale ze względu na problemy ze znakami towarowymi z nazwą Javascript standard został nazwany ECMAScript.

  • Każda przeglądarka ma interpreter JavaScript.


Aby uzyskać więcej informacji na ten temat, moja pełna odpowiedź tutaj. Jaka jest różnica między JavaScript a ECMAScript?


prawie każda przeglądarka obsługuje JavaScript, ale jest wiele przeglądarek CLI, takich jak linki i lynx, które tego nie robią, oprócz nich są: links2, w3m, elinks i edbrowse. Większość przeglądarek CLI również nie obsługuje JS.
Cassio Seffrin

16

ECMA to skrót od - European Computer Manufacturer Association. ECMAScript to standard języka skryptowego. Określa podstawowe funkcje, które powinien zapewniać język skryptowy, oraz sposób implementacji tych funkcji. Javascript został pierwotnie stworzony w Netscape i chcieli ujednolicić język. Dlatego przedłożyli język Europejskiemu Stowarzyszeniu Producentów Komputerów (ECMA) w celu standaryzacji. Ale były problemy ze znakami towarowymi z nazwą Javascript, a standard został nazwany ECMAScript, tak samo jak dzisiaj.

Możesz więc użyć dowolnego języka skryptowego, który implementuje standard ECMA, ponieważ przeglądarki internetowe obsługują interpretację ECMAScript podczas określania ( <script type="text/ecmascript">).


2

ECMA to organizacja, która ustandaryzowała JavaScript. Nazwali język ECMAScript, jednak „JavaScript” był terminem, który wygrał „konkurs nazw”


1

Oto inne spojrzenie na ten temat. To mniej więcej z doświadczenia, niczego nie mogę zacytować. Każdy walidator JavaScript i każdy, kto pracuje z JavaScript, powie ci to

alert("hello World");

jest prawidłowym JavaScriptem. Zgadzam się też.

Jednak walidator ECMAScript prawdopodobnie powie ci, że jest nieprawidłowy, ponieważ alert () nie jest częścią ECMAScript, ale typową funkcją JavaScript for Browsers. Istnieje wiele funkcji JavaScript, które mają sens tylko w środowisku przeglądarki, np. Window.navigator, window.document, WebSocket, navigator.geolocation. Niektórzy powiedzieliby nawet, że nie jest to część JavaScript, ale część HTML5, co nie jest prawdą, ponieważ HTML5 to tylko język znaczników. Jednak te wymyślne nowe funkcje są często nazywane HTML5, mimo że zostały zaimplementowane w JavaScript.

JavaScript może być również używany do tworzenia skryptów po stronie serwera. Wtedy cała geolkacja czy media api nie mają sensu. Tak więc JavaScript dla skryptów po stronie serwera jest ponownie znacznie bliższy ECMAScript, który nie ma tych typowych funkcji przeglądarki.

Naprawdę nie mogłem się dowiedzieć, czy obiekt Math (np. Math.sqrt (9)) jest częścią ECAMScript, czy też ECMAScript naprawdę definiuje składnię języka i nie ma żadnej wbudowanej funkcjonalności. Ale jeden walidator ECMAScript zaakceptował Math.sqrt (9) jako prawidłowy ECMAScript, podczas gdy var test = window.document; nie przeszedł walidacji ECMA.

Mimo że poniższy link prowadzi do dokumentacji JavaScript, moim zdaniem jest to wbudowany zestaw funkcji (obiekty i funkcje) ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Więc moim zdaniem JavaScript jest bardzo blisko związany z przeglądarkami, podczas gdy ECMAScript ma tak naprawdę tylko bardzo podstawowy zestaw funkcji (jeśli w ogóle).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.