Was ist der Unterschied zwischen ECMAScript und JavaScript? Nach meinen Schlussfolgerungen ist ECMAScript der Standard und JavaScript die Implementierung. Ist das richtig?
javascript
ecma262
Kerl
quelle
quelle
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).
quelle
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.
quelle
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:
quelle
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. )
quelle
Was ist ECMAScript dh ES?
Ist Javascript genau das gleiche wie ECMAScript?
DOM API wie:
document.getElementById('id');
Verwenden andere Sprachen den ECMAScript-Standard?
Warum heißt es ECMAScript?
quelle
Verschiedene JavaScript-Versionen sind Implementierungen des ECMAScript-Standards.
quelle
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)
quelle
Nach meinem Verständnis ist ECMAScript die "Theorie" oder "Spezifikation" und Javascript ist "Praktisch" oder "Implementierung".
quelle
JavaScript ist eine ECMAScript-Sprache.
ECMAScript ist nicht unbedingt JavaScript.
quelle
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.
quelle
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.
quelle
ECMAScript ist ein Standard für JavaScrip . Sehen Sie sich diese Anweisungen von MDN an :
JavaScript
ECMAScript
Weitere Informationen finden Sie hier
quelle
Hier sind meine Ergebnisse:
JavaScript: Der von David Flanagan verfasste Definitive Guide bietet eine sehr präzise Erklärung:
Ein Blog-Beitrag von Microsoft scheint mit dem übereinzustimmen, was Flanagan mit den Worten erklärt.
.. was mich denken lässt, dass alle Vorkommen
JavaScript
in diesem Referenzbeitrag (wieder von Microsoft) durch ersetzt werden müssenECMASCript
. Sie scheinen tatsächlich vorsichtig zu sein, wenn sieECMAScript
nur diese neuere und technischere Dokumentationsseite verwenden.w3schools.com scheint mit den obigen Definitionen übereinzustimmen :
Der Schlüssel hier ist: der offizielle Name der Sprache .
Wenn Sie die JavaScript-Versionsseiten von Mozilla überprüfen , wird die folgende Anweisung angezeigt:
Wenn Sie die neuesten Versionshinweise sehen, sehen Sie immer Verweise auf ECMAScript-Standards, wie z.
Mozilla Web Docs hat auch eine Seite , die den Unterschied zwischen ECMAScript und JavaScript erklärt:
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:
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.
quelle
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.
quelle
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.
quelle