Odpowiedzi:
ECMAScript jest językiem, podczas gdy JavaScript, JScript, a nawet ActionScript 3 są nazywane „dialektami”. Wikipedia rzuca na to trochę światła.
Myślę, że należy się trochę lekcji historii.
JavaScript został pierwotnie nazwany Mocha i zmieniony na Livescript, ale ostatecznie stał się JavaScript.
Ważne jest, aby pamiętać, że JavaScript pojawił się przed ECMAscript, a historia podpowie, dlaczego.
Na początek JavaScript wywodził swoją nazwę od Javy i początkowo Brendan Eich (twórca JS) został poproszony o opracowanie języka przypominającego Javę dla Internetu dla Netscape.
Eich zdecydował jednak, że Java jest zbyt skomplikowana, jeśli chodzi o wszystkie jej reguły, i dlatego postanowił stworzyć prostszy język, w którym nawet początkujący mógłby się zakodować. Jest to widoczne w takich rzeczach, jak rozluźnienie potrzeby posiadania średnika.
Po ukończeniu języka zespół marketingowy Netscape poprosił firmę Sun o zezwolenie, by nazwała go JavaScript jako chwyt marketingowy i dlatego większość osób, które nigdy nie używały JavaScript, uważa, że jest to związane z Javą.
Mniej więcej rok lub dwa po wydaniu JavaScript w przeglądarce IE Microsoftu wziął ten język i zaczął tworzyć własne implementacje, takie jak JScript. Jednocześnie IE dominowało na rynku i niedługo po tym, jak Netscape musiał zamknąć swój projekt.
Zanim Netscape upadł, postanowili uruchomić standard, który poprowadzi ścieżkę JavaScript, o nazwie ECMAScript.
ECMAScript miał kilka wydań, aw 1999 roku wydali ostatnią wersję (ECMAScript 3), zanim przeszli w stan hibernacji na następne 10 lat. W ciągu tych 10 lat Microsoft zdominował sceny, ale jednocześnie nie ulepszali swojego produktu, dlatego narodził się Firefox (prowadzony przez Eicha) i cała masa innych przeglądarek, takich jak Chrome, Opera.
ECMAScript wydał swoją 5. edycję w 2009 roku (4. edycja została porzucona) z funkcjami takimi jak tryb ścisły. Od tego czasu ECMAScript zyskał duży rozpęd i planuje wydać swoją 6. edycję w ciągu kilku miesięcy od teraz z największymi zmianami, jakie do tej pory miały.
Możesz skorzystać z listy funkcji ECMAScript 6 tutaj http://kangax.github.io/es5-compat-table/es6/, a także obsługi przeglądarki. Możesz nawet zacząć pisać Ecmascript 6, tak jak w przypadku CoffeeScript, i użyć kompilatora do skompilowania do Ecmascript 5.
To, czy ECMAScript jest językiem, a JavaScript jest dialektem, jest dyskusyjne, ale nie ważne. Jeśli nadal będziesz tak myślał, może Cię to zdezorientować. Nie ma kompilatora, który uruchamiałby ECMAScript, i uważam, że JavaScript jest uważany za język, który implementuje standard o nazwie ECMAScript.
Istnieją również inne zauważalne języki, które implementują ECMAScript, takie jak ActionScript (używany we Flashu)
ECMAScript = ES:
ECMAScript to standard języków skryptowych.
Języki takie jak Javascript są oparte na standardzie ECMAScript.
Standard ECMA opiera się na kilku oryginalnych technologiach, z których najbardziej znanymi są JavaScript (Netscape) i JScript (Microsoft).
ECMA oznacza Europejskie Stowarzyszenie Producentów Komputerów
JavaScript = JS:
JavaScript jest najpopularniejszą implementacją 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 inne języki, które implementują ECMAScript.
JavaScript został przesłany do ECMA w celu standaryzacji, ale z powodu problemów ze znakiem towarowym o nazwie Javascript standard został nazwany ECMAScript.
Każda przeglądarka ma interpreter JavaScript.
ES5 = ECMAScript 5:
ES5 to wersja ECMAScript (stara / aktualna).
ES5 to JavaScript, który znasz i którego używasz dzisiaj w przeglądarce.
ES5 nie wymaga kroku kompilacji (transpilatorów), aby przekształcić go w coś, co będzie działać w dzisiejszych przeglądarkach.
ECMAScript wersja 5 została ukończona w grudniu 2009 roku, najnowsze wersje wszystkich głównych przeglądarek (Chrome, Safari, Firefox i IE) mają zaimplementowaną wersję 5.
Wersja 5.1 została ukończona w czerwcu 2011 roku.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 jest wersją ECMAScript (nowy / przyszły).
Oficjalnie zamiast ES6 należy użyć nazwy ES2015.
ES6 usunie wiele niedociągnięć w języku podstawowym, które zostały wyeliminowane w TypeScript i CoffeeScript.
ES6 to kolejna wersja JavaScript, ale nie działa w dzisiejszych przeglądarkach.
Istnieje wiele transpilatorów, które eksportują ES5 do działania w przeglądarkach.
BabelJS:
BabelJS to najpopularniejszy transpiler, który przekształca nowy JavaScript ES6 na Stary JavaScript ES5.
BabelJS umożliwia dziś pisanie JavaScriptu nowej generacji (oznacza ES2015).
BabelJS po prostu pobiera plik ES2015 i przekształca go w plik ES5.
Obecne wersje przeglądarek mogą teraz zrozumieć nowy kod JavaScript (ES2015), nawet jeśli jeszcze go nie obsługują.
TypeScript i CoffeeScript:
Oba zapewniają cukier syntaktyczny na ES5, a następnie są przekształcane w JavaScript zgodny z ES5.
Piszesz TypeScript lub CoffeeScript, a następnie transpiler przekształca go w ES5 JavaScript.
JavaScript = ECMAScript + DOM + BOM ;
Specyfikacja języka ECMAScript® definiuje całą logikę tworzenia i edycji obiektów, tablic, liczb itp.
DOM ( D Oument O bject M odel ) umożliwia komunikację z dokumentami HTML / XML (np document.getElementById('id');
.).
BOM ( B rowser O bject M odel ) to hierarchia obiektów przeglądarki (np. Obiekt lokalizacji, obiekt historii, elementy formularza).
Historia nazewnictwa JavaScript:
Mocha ► LiveScript ► JavaScript ► (w rezultacie część JS) ECMA-262 ► ECMAScript ► JavaScript (składa się z ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
opiera się wyłącznie na ogólnie uzgodnionych, udokumentowanych warunkach, z których składa się JavaScript.
Technicznie ECMAScript jest językiem, którego wszyscy używają i wdrażają - jest to specyfikacja stworzona wiele lat temu, kiedy Netscape i Microsoft usiedli i próbowali ustandaryzować skrypty między JavaScript (językiem skryptowym Netscape) a JScript (Microsoft).
Następnie wszystkie te silniki pozornie implementują ECMAScript, jednak JavaScript (nazwa) jest teraz zawieszony zarówno z tradycyjnych powodów nazewnictwa, jak i jako marketingowy termin Mozilli dla różnych niestandardowych rozszerzeń (które chcą być w stanie „wersjonować” )
Co to jest ECMAScript, tj. ES?
ECMAScript jest standardem dla języka skryptowego, a język JavaScript jest oparty na standardzie ECMAScript.
Czy JavaScript jest dokładnie taki sam jak ECMAScript?
JavaScript = ECMAScript + DOM API;
DOM API, takie jak: document.getElementById('id');
Czy inne języki używają standardu ECMAScript?
Dlaczego nazywa się ECMAScript?
wiem, że to stary post, ale mam nadzieję, że to komuś pomoże.
W latach 90. zaczęły pojawiać się różne wersje js, takie jak javascript z netscape, skrypt Js z Microsoft. Więc ecmascript został wprowadzony jako standard. Ale ecmascript stanowi tylko część javascript, która określa jego podstawową składnię, typy, obiekty itp. Prawdopodobnie wyjaśnia to niespójne implementacje javascript w różnych wersjach. przeglądarki
Odniesienia - Wrox (Professional Javascript dla programistów stron internetowych)
JavaScript jest językiem ECMAScript.
ECMAScript niekoniecznie jest JavaScript.
Istniejące odpowiedzi dość dobrze parafrazują główny punkt.
Najważniejsze jest to, że ECMAScript jest czystym językiem abstrakcyjnym, bez rozszerzeń specyficznych dla domeny, sam w sobie jest bezużyteczny. Specyfikacja określa jedynie język i rdzeń obiektów z niego.
Podczas gdy JavaScript, ActionScript i inne dialekty dodają do niej bibliotekę specyficzną dla domeny, możesz więc użyć jej do czegoś sensownego.
Istnieje wiele silników ECMAScript , niektóre z nich są oprogramowaniem typu open source, inne są zastrzeżone. Możesz połączyć je ze swoim programem, a następnie dodać swoje rodzime funkcje do obiektu globalnego, aby twój program stał się skryptowalny. Chociaż najczęściej są używane w przeglądarkach.
Javascript był oryginalną nazwą, która miała wykorzystać popularność Java. ECMA jest organem normalizacyjnym, który nadzoruje normę, która ostatecznie została wprowadzona, więc nazwy są w przybliżeniu równoważne.
Implementacje mają inne nazwy, takie jak V8 lub Rhino itp.
ECMAScript jest standardem dla JavaScrip t, spójrz na te instrukcje z MDN :
JavaScript (JS) to lekki interpretowany lub skompilowany w JIT język programowania z pierwszorzędnymi funkcjami. Chociaż jest najbardziej znany jako język skryptowy dla stron internetowych, używa go również wiele środowisk innych niż przeglądarka, takich jak node.js, Apache CouchDB i Adobe Acrobat. JavaScript to oparty na prototypach, dynamiczny język oparty na wielu paradygmatach, obsługujący style obiektowe, imperatywne i deklaratywne (np. Programowanie funkcjonalne). Przeczytaj więcej o JavaScript.
Standardem dla JavaScript jest ECMAScript . Od 2012 r. Wszystkie nowoczesne przeglądarki w pełni obsługują ECMAScript 5.1. Starsze przeglądarki obsługują co najmniej ECMAScript 3. 17 czerwca 2015 r. ECMA International opublikowała szóstą główną wersję ECMAScript, która oficjalnie nosi nazwę ECMAScript 2015 i początkowo była nazywana ECMAScript 6 lub ES6. Od tego czasu standardy ECMAScript są wydawane co roku. Ta dokumentacja odnosi się do najnowszej wersji roboczej, którą jest obecnie ECMAScript 2018.
Aby uzyskać więcej informacji, odwiedź tutaj
Oto moje ustalenia:
JavaScript: The Definitive Guide , napisany przez Davida Flanagana, zawiera bardzo zwięzłe wyjaśnienie:
JavaScript został stworzony w Netscape we wczesnych dniach Internetu, a technicznie „JavaScript” jest znakiem handlowym licencjonowanym przez Sun Microsystems (obecnie Oracle) używanym do opisania implementacji języka przez Netscape (obecnie Mozilla). Netscape przesłał ECMA język do standaryzacji, a ze względu na problemy ze znakami towarowymi znormalizowana wersja tego języka utknęła z niezręczną nazwą „ECMAScript”. Z tych samych powodów związanych ze znakami towarowymi wersja języka Microsoft jest oficjalnie znana jako „JScript”. W praktyce prawie wszyscy nazywają język JavaScript.
Blogu przez Microsoft wydaje się zgodzić z tym, co Flanagan wyjaśnia mówiąc ..
ECMAScript to oficjalna nazwa języka JavaScript, który wszyscy znamy i kochamy.
.. co sprawia mi myśleć, wszystkie wystąpienia JavaScript
w tym poście odniesienia (przez Microsoft znowu) muszą być zastąpione ECMASCript
. Wydają się być ostrożni z używaniem ECMAScript
tylko na tej , nowszej i bardziej technicznej stronie dokumentacji.
w3schools.com wydaje się zgadzać z powyższymi definicjami:
JavaScript został wynaleziony przez Brendana Eicha w 1995 r., A stał się standardem ECMA w 1997 r. ECMA-262 to oficjalna nazwa tego standardu. ECMAScript to oficjalna nazwa języka.
Kluczem jest tutaj: oficjalna nazwa języka .
Jeśli sprawdzisz strony wersji JavaScript Mozilli , zobaczysz następujące oświadczenie:
Przestarzałe. Wyraźna wersja i opcjonalne funkcje językowe były specyficzne dla Mozilli i są w trakcie usuwania. Firefox 4 był ostatnią wersją, która odwoływała się do wersji JavaScript (1.8.5). W nowych standardach ECMA często wspominane są teraz funkcje języka JavaScript wraz z ich pierwotną definicją w wydaniach ECMA-262, takich jak ECMAScript 2015.
a kiedy zobaczysz ostatnie informacje o wersji, zawsze zobaczysz odniesienie do standardów ECMAScript, takich jak:
Zaimplementowano właściwość Symbol.toStringTag ES2015 (błąd 1114580).
Zaimplementowano metody TypedArray.prototype.toString () i TypedArray.prototype.toLocaleString () (błąd 1121938).
Dokumenty WWW Mozilli mają także stronę wyjaśniającą różnicę między ECMAScript a JavaScript:
Jednak ogólny termin „JavaScript” rozumiany w kontekście przeglądarki internetowej zawiera kilka bardzo różnych elementów. Jednym z nich jest język podstawowy (ECMAScript), innym jest kolekcja interfejsów API sieci Web, w tym DOM (Document Object Model).
Wniosek
W moim rozumieniu ludzie używają słowa JavaScript nieco swobodnie w odniesieniu do podstawowej specyfikacji ECMAScript.
Powiedziałbym, że wszystkie nowoczesne implementacje JavaScript (lub silniki JavaScript) są w rzeczywistości implementacjami ECMAScript. Sprawdź definicję silnika V8 od Google, na przykład:
V8 to wysokowydajny silnik JavaScriptu Google, napisany w C ++ i używany między innymi w Google Chrome, przeglądarce open source Google i Node.js. Implementuje ECMAScript, jak określono w ECMA-262.
Wydaje się, że używają zamiennie słów JavaScript i ECMAScript, i powiedziałbym, że to właściwie silnik ECMAScript?
Dlatego większość silników JavaScript faktycznie implementuje standard ECMAScript, ale zamiast nazywać je silnikami ECMAScript, nazywają się silnikami JavaScript. Ta odpowiedź obsługuje również sposób, w jaki widzę sytuację.
Wątpię, czy kiedykolwiek użylibyśmy słowa „ECMAScript”, gdyby nie fakt, że nazwa „JavaScript” jest własnością firmy Sun. Dla wszystkich celów i celów językiem jest JavaScript. Nie chodzisz do księgarni w poszukiwaniu książek ECMAScript, prawda?
Nieco łatwo jest powiedzieć, że „JavaScript” to implementacja. JScript jest implementacją Microsoft.
JavaScript to jedna gałąź języków utworzona wokół standardu ECMAScript. Uważam, że ECMA jest Europejskim Stowarzyszeniem Producentów Komputerów, nie dlatego, że jest to naprawdę istotne lub coś w tym rodzaju.
Nie zapomnij, że innym popularnym językiem utworzonym wokół standardu ECMA Script jest ActionScript, używany w Adobe Flash / Flex.