Antworten:
ECMAScript ist die Sprache, während JavaScript, JScript und sogar ActionScript 3 als "Dialekte" bezeichnet werden. Wikipedia beleuchtet dies.
Ich denke, eine kleine Geschichtsstunde ist fällig.
JavaScript hieß ursprünglich Mocha und wurde in Livescript geändert, wurde aber schließlich zu JavaScript.
Es ist wichtig zu beachten, dass JavaScript vor ECMAscript kam und der Verlauf Ihnen sagt, warum.
Zunächst leitete JavaScript seinen Namen von Java ab, und zunächst wurde Brendan Eich (der Erfinder von JS) gebeten, eine Sprache zu entwickeln, die Java für das Web für Netscape ähnelte.
Eich entschied jedoch, dass Java mit all seinen Regeln zu kompliziert war, und machte sich deshalb daran, eine einfachere Sprache zu erstellen, in die selbst Anfänger codieren können. Dies zeigt sich in solchen Dingen wie der Lockerung der Notwendigkeit, ein Semikolon zu haben.
Nachdem die Sprache vollständig war, forderte das Marketingteam von Netscape Sun auf, ihnen zu gestatten, JavaScript als Marketing-Stunt zu bezeichnen. Daher glauben die meisten Leute, die JavaScript noch nie verwendet haben, dass es mit Java zusammenhängt.
Ungefähr ein oder zwei Jahre nach der Veröffentlichung von JavaScript im Browser übernahm der IE von Microsoft die Sprache und begann, eigene Implementierungen wie JScript zu erstellen. Gleichzeitig dominierte IE den Markt und nicht lange nachdem Netscape sein Projekt einstellen musste.
Bevor Netscape ausfiel, beschlossen sie, einen Standard namens ECMAScript zu starten, der den Pfad von JavaScript leiten sollte.
ECMAScript hatte einige Veröffentlichungen und 1999 veröffentlichten sie ihre letzte Version (ECMAScript 3), bevor sie für die nächsten 10 Jahre in den Ruhezustand gingen. Während dieser 10 Jahre dominierte Microsoft die Szenen, aber gleichzeitig verbesserten sie ihr Produkt nicht und so wurde Firefox geboren (angeführt von Eich) und eine ganze Reihe anderer Browser wie Chrome, Opera.
ECMAScript veröffentlichte seine 5. Ausgabe im Jahr 2009 (die 4. Ausgabe wurde aufgegeben) mit Funktionen wie dem strengen Modus. Seitdem hat ECMAScript viel an Dynamik gewonnen und wird voraussichtlich in wenigen Monaten seine 6. Ausgabe mit den größten Änderungen veröffentlichen, die es bisher hatte.
Eine Liste der Funktionen für ECMAScript 6 finden Sie hier http://kangax.github.io/es5-compat-table/es6/ sowie die Browserunterstützung. Sie können sogar wie mit CoffeeScript mit dem Schreiben von Ecmascript 6 beginnen und einen Compiler verwenden, um bis zu Ecmascript 5 zu kompilieren.
Ob ECMAScript die Sprache und JavaScript ein Dialekt ist, ist fraglich, aber nicht wichtig. Wenn Sie weiterhin so denken, könnte dies Sie verwirren. Es gibt keinen Compiler, der ECMAScript ausführen würde, und ich glaube, JavaScript wird als die Sprache angesehen, die einen Standard namens ECMAScript implementiert.
Es gibt auch andere auffällige Sprachen, die ECMAScript implementieren, wie z. B. ActionScript (für Flash verwendet).
ECMAScript = ES:
ECMAScript ist ein Standard für Skriptsprachen.
Sprachen wie Javascript basieren auf dem ECMAScript-Standard.
Der ECMA-Standard basiert auf mehreren ursprünglichen Technologien, von denen die bekanntesten JavaScript (Netscape) und JScript (Microsoft) sind.
ECMA bedeutet European Computer Manufacturer's Association
JavaScript = JS:
JavaScript ist die beliebteste Implementierung des ECMAScript-Standards.
Die Hauptfunktionen von Javascript basieren auf dem ECMAScript-Standard, aber Javascript verfügt auch über andere zusätzliche Funktionen, die nicht in den ECMA-Spezifikationen / -Standards enthalten sind.
ActionScript und JScript sind andere Sprachen, die ECMAScript implementieren.
JavaScript wurde der ECMA zur Standardisierung vorgelegt, aber aufgrund von Markenproblemen mit dem Namen Javascript wurde der Standard ECMAScript genannt.
Jeder Browser verfügt über einen JavaScript-Interpreter.
ES5 = ECMAScript 5:
ES5 ist eine Version des ECMAScript (alt / aktuell).
ES5 ist das JavaScript, das Sie heute im Browser kennen und verwenden.
ES5 erfordert keinen Build-Schritt (Transpiler), um es in etwas umzuwandeln, das in den heutigen Browsern ausgeführt wird.
ECMAScript Version 5 wurde im Dezember 2009 fertiggestellt. Die neuesten Versionen aller gängigen Browser (Chrome, Safari, Firefox und IE) haben Version 5 implementiert.
Version 5.1 wurde im Juni 2011 fertiggestellt.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 ist eine Version des ECMAScript (neu / zukünftig).
Offiziell sollte der Name ES2015 anstelle von ES6 verwendet werden.
ES6 wird viele der in TypeScript und CoffeeScript angesprochenen Kernsprachenmängel beheben.
ES6 ist die nächste Iteration von JavaScript, wird jedoch in den heutigen Browsern nicht ausgeführt.
Es gibt einige Transpiler, die ES5 exportieren, um es in Browsern auszuführen.
BabelJS:
BabelJS ist der beliebteste Transpiler, der neues JavaScript ES6 in altes JavaScript ES5 umwandelt.
BabelJS ermöglicht es, heute die nächste Generation von JavaScript zu schreiben (bedeutet ES2015).
BabelJS nimmt einfach die ES2015-Datei und wandelt sie in eine ES5-Datei um.
Aktuelle Browserversionen können jetzt den neuen JavaScript-Code (ES2015) verstehen, auch wenn sie ihn noch nicht unterstützen.
TypeScript und CoffeeScript:
Beide bieten syntaktischen Zucker zusätzlich zu ES5 und werden dann in ES5-kompatibles JavaScript transkompiliert.
Sie schreiben TypeScript oder CoffeeScript und der Transpiler wandelt es in ES5-JavaScript um.
JavaScript = ECMAScript + DOM + BOM ;
Die ECMAScript®-Sprachspezifikation definiert die gesamte Logik zum Erstellen und Bearbeiten von Objekten, Arrays, Zahlen usw.
DOM ( D OKUMENT O bject M odel) macht es möglich , mit HTML / XML - Dokumenten (zB zu kommunizieren document.getElementById('id');
).
BOM ( B rowser O bject M odel) ist die Hierarchie der Browser - Objekte (zB Standortobjekt, Historienobjekt, Formelemente).
Geschichte der JavaScript-Benennung:
Mokka ► LiveScript ► JavaScript ► (Teil von JS führte zu) ECMA-262 ► ECMAScript ► JavaScript (besteht aus ECMAScript + DOM + Stückliste)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
basiert lediglich auf den insgesamt vereinbarten dokumentierten Begriffen, aus denen JavaScript besteht.
Technisch gesehen ist ECMAScript die Sprache, die jeder verwendet und implementiert - es ist die Spezifikation, die vor vielen Jahren erstellt wurde, als Netscape und Microsoft sich hinsetzten und versuchten, die Skripterstellung zwischen JavaScript (Netscape-Skriptsprache) und JScript (Microsoft) zu standardisieren.
In der Folge implementieren alle diese Engines angeblich ECMAScript, jedoch hängt JavaScript (der Name) jetzt sowohl aus traditionellen Namensgründen als auch als Marketingbegriff von Mozilla für ihre verschiedenen nicht standardmäßigen Erweiterungen (die sie tatsächlich "versionieren" möchten) herum. )
Was ist ECMAScript dh ES?
ECMAScript ist ein Standard für eine Skriptsprache und die Javascript-Sprache basiert auf dem ECMAScript-Standard.
Ist Javascript genau das gleiche wie ECMAScript?
JavaScript = ECMAScript + DOM API;
DOM API wie: document.getElementById('id');
Verwenden andere Sprachen den ECMAScript-Standard?
Warum heißt es ECMAScript?
Ich weiß, dass dies ein alter Beitrag ist, aber hoffentlich hilft dies jemandem.
In den 1990er Jahren kamen verschiedene Versionen von js heraus, wie Javascript von netscape, Js script von Microsoft. Daher wurde Ecmascript als Standard eingeführt. Ecmascript bildet jedoch nur einen Teil von Javascript, der seine Kernsyntax, Typen, Objekte usw. angibt. Dies erklärt wahrscheinlich die inkonsistenten Implementierungen von Javascript in diff. Browser
Referenz - Wrox (Professionelles Javascript für Webentwickler)
JavaScript ist eine ECMAScript-Sprache.
ECMAScript ist nicht unbedingt JavaScript.
Bestehende Antworten umschreiben den Hauptpunkt recht gut.
Der Hauptpunkt ist, dass ECMAScript die bloße abstrakte Sprache ist, ohne domänenspezifische Erweiterungen, es ist an sich nutzlos. Die Spezifikation definiert nur die Sprache und die Kernobjekte davon.
Während JavaScript, ActionScript und andere Dialekte die domänenspezifische Bibliothek hinzufügen, können Sie sie für etwas Sinnvolles verwenden.
Es gibt viele ECMAScript-Engines , einige davon sind Open Source, andere sind proprietär. Sie können sie mit Ihrem Programm verknüpfen und dann Ihre nativen Funktionen zum globalen Objekt hinzufügen, damit Ihr Programm skriptfähig wird. Obwohl sie meistens in Browsern verwendet werden.
Javascript war der ursprüngliche Name, um die Popularität von Java zu nutzen. ECMA ist das Normungsgremium, das den Standard überwacht, der schließlich eingeführt wurde, sodass die Namen in etwa gleichwertig sind.
Implementierungen haben andere Namen wie V8 oder Rhino usw.
ECMAScript ist ein Standard für JavaScrip . Sehen Sie sich diese Anweisungen von MDN an :
JavaScript (JS) ist eine leicht interpretierte oder JIT-kompilierte Programmiersprache mit erstklassigen Funktionen. Während es als Skriptsprache für Webseiten am bekanntesten ist, wird es auch von vielen Nicht-Browser-Umgebungen verwendet, z. B. node.js, Apache CouchDB und Adobe Acrobat. JavaScript ist eine prototypbasierte, dynamische Sprache mit mehreren Paradigmen, die objektorientierte, imperative und deklarative (z. B. funktionale Programmierung) Stile unterstützt. Lesen Sie mehr über JavaScript.
Der Standard für JavaScript ist ECMAScript . Ab 2012 unterstützen alle modernen Browser ECMAScript 5.1 vollständig. Ältere Browser unterstützen mindestens ECMAScript 3. Am 17. Juni 2015 veröffentlichte ECMA International die sechste Hauptversion von ECMAScript, die offiziell als ECMAScript 2015 bezeichnet wird und ursprünglich als ECMAScript 6 oder ES6 bezeichnet wurde. Seitdem befinden sich die ECMAScript-Standards in jährlichen Veröffentlichungszyklen. Diese Dokumentation bezieht sich auf die neueste Entwurfsversion, die derzeit ECMAScript 2018 ist.
Weitere Informationen finden Sie hier
Hier sind meine Ergebnisse:
JavaScript: Der von David Flanagan verfasste Definitive Guide bietet eine sehr präzise Erklärung:
JavaScript wurde in den Anfängen des Web bei Netscape erstellt. Technisch gesehen ist "JavaScript" eine Marke, die von Sun Microsystems (jetzt Oracle) lizenziert wurde und zur Beschreibung der Implementierung der Sprache durch Netscape (jetzt Mozilla) verwendet wird. Netscape reichte die Sprache zur Standardisierung bei ECMA ein und aufgrund von Markenproblemen wurde die standardisierte Version der Sprache mit dem unangenehmen Namen "ECMAScript" versehen. Aus den gleichen Markengründen wird die Microsoft-Version der Sprache offiziell als "JScript" bezeichnet. In der Praxis nennt fast jeder die Sprache JavaScript.
Ein Blog-Beitrag von Microsoft scheint mit dem übereinzustimmen, was Flanagan mit den Worten erklärt.
ECMAScript ist der offizielle Name für die JavaScript-Sprache, die wir alle kennen und lieben.
.. was mich denken lässt, dass alle Vorkommen JavaScript
in diesem Referenzbeitrag (wieder von Microsoft) durch ersetzt werden müssen ECMASCript
. Sie scheinen tatsächlich vorsichtig zu sein, wenn sie ECMAScript
nur diese neuere und technischere Dokumentationsseite verwenden.
w3schools.com scheint mit den obigen Definitionen übereinzustimmen :
JavaScript wurde 1995 von Brendan Eich erfunden und 1997 zum ECMA-Standard. ECMA-262 ist der offizielle Name des Standards. ECMAScript ist der offizielle Name der Sprache.
Der Schlüssel hier ist: der offizielle Name der Sprache .
Wenn Sie die JavaScript-Versionsseiten von Mozilla überprüfen , wird die folgende Anweisung angezeigt:
Veraltet. Die explizite Versionierung und Aktivierung von Sprachfunktionen war Mozilla-spezifisch und wird derzeit entfernt. Firefox 4 war die letzte Version, die sich auf eine JavaScript-Version (1.8.5) bezog. Mit neuen ECMA-Standards werden JavaScript-Sprachfunktionen häufig mit ihrer ursprünglichen Definition in ECMA-262-Editionen wie ECMAScript 2015 erwähnt.
Wenn Sie die neuesten Versionshinweise sehen, sehen Sie immer Verweise auf ECMAScript-Standards, wie z.
Die ES2015 Symbol.toStringTag-Eigenschaft wurde implementiert (Fehler 1114580).
Die Methoden ES2015 TypedArray.prototype.toString () und TypedArray.prototype.toLocaleString () wurden implementiert (Fehler 1121938).
Mozilla Web Docs hat auch eine Seite , die den Unterschied zwischen ECMAScript und JavaScript erklärt:
Der in einem Webbrowser-Kontext verstandene Überbegriff "JavaScript" enthält jedoch mehrere sehr unterschiedliche Elemente. Eine davon ist die Kernsprache (ECMAScript), eine andere ist die Sammlung der Web-APIs, einschließlich des DOM (Document Object Model).
Fazit
Nach meinem Verständnis wird das Wort JavaScript etwas großzügig verwendet, um auf die Kernspezifikation von ECMAScript zu verweisen.
Ich würde sagen, alle modernen JavaScript-Implementierungen (oder JavaScript-Engines) sind tatsächlich ECMAScript-Implementierungen. Überprüfen Sie die Definition der V8-Engine von Google, zum Beispiel:
V8 ist Googles Open-Source-Hochleistungs-JavaScript-Engine, die in C ++ geschrieben und unter anderem in Google Chrome, dem Open-Source-Browser von Google und in Node.js verwendet wird. Es implementiert ECMAScript gemäß ECMA-262.
Sie scheinen das Wort JavaScript und ECMAScript synonym zu verwenden, und ich würde sagen, es ist tatsächlich eine ECMAScript-Engine?
Die meisten JavaScript-Engines implementieren tatsächlich den ECMAScript-Standard, aber anstatt sie ECMAScript-Engines zu nennen, nennen sie sich selbst JavaScript-Engines. Diese Antwort unterstützt auch die Art und Weise, wie ich die Situation sehe.
Ich bezweifle, dass wir jemals das Wort "ECMAScript" verwenden würden, wenn nicht der Name "JavaScript" Sun gehört. In jeder Hinsicht ist die Sprache JavaScript. Sie gehen nicht in die Buchhandlung, um nach ECMAScript-Büchern zu suchen, oder?
Es ist etwas zu einfach zu sagen, dass "JavaScript" die Implementierung ist. JScript ist die Implementierung von Microsoft.
JavaScript ist ein Zweig von Sprachen, die um den ECMAScript-Standard herum gebildet werden. Ich glaube, ECMA ist die European Computer Manufacturers Association, nicht dass dies wirklich relevant ist oder so.
Vergessen Sie nicht, dass ActionScript, das in Adobe Flash / Flex verwendet wird, eine weitere beliebte Sprache ist, die sich um den ECMA-Skriptstandard dreht.