Jaka jest różnica między ECMAScript a JavaScript? Z tego, co wydedukowałem, ECMAScript jest standardem, a JavaScript jest implementacją. Czy to jest poprawne?
javascript
ecma262
Chłopak
źródło
źródło
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)
źródło
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.
źródło
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:
źródło
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ć” )
źródło
Co to jest ECMAScript, tj. ES?
Czy JavaScript jest dokładnie taki sam jak ECMAScript?
DOM API, takie jak:
document.getElementById('id');
Czy inne języki używają standardu ECMAScript?
Dlaczego nazywa się ECMAScript?
źródło
Różne wersje JavaScript są implementacjami standardu ECMAScript.
źródło
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)
źródło
W moim rozumieniu ECMAScript to „Teoria” lub „Specyfikacja”, a Javascript to „Praktyczne” lub „Implementacja”.
źródło
JavaScript jest językiem ECMAScript.
ECMAScript niekoniecznie jest JavaScript.
źródło
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.
źródło
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.
źródło
ECMAScript jest standardem dla JavaScrip t, spójrz na te instrukcje z MDN :
JavaScript
ECMAScript
Aby uzyskać więcej informacji, odwiedź tutaj
źródło
Oto moje ustalenia:
JavaScript: The Definitive Guide , napisany przez Davida Flanagana, zawiera bardzo zwięzłe wyjaśnienie:
Blogu przez Microsoft wydaje się zgodzić z tym, co Flanagan wyjaśnia mówiąc ..
.. co sprawia mi myśleć, wszystkie wystąpienia
JavaScript
w tym poście odniesienia (przez Microsoft znowu) muszą być zastąpioneECMASCript
. Wydają się być ostrożni z używaniemECMAScript
tylko na tej , nowszej i bardziej technicznej stronie dokumentacji.w3schools.com wydaje się zgadzać z powyższymi definicjami:
Kluczem jest tutaj: oficjalna nazwa języka .
Jeśli sprawdzisz strony wersji JavaScript Mozilli , zobaczysz następujące oświadczenie:
a kiedy zobaczysz ostatnie informacje o wersji, zawsze zobaczysz odniesienie do standardów ECMAScript, takich jak:
Dokumenty WWW Mozilli mają także stronę wyjaśniającą różnicę między ECMAScript a JavaScript:
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:
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ę.
źródło
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.
źródło
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.
źródło