Was ist ECMAScript?

118

Wenn ich in Visual Studio meinen Skripttyp auf JavaScript setze, wird dies in Intellisense als Option angezeigt.

Eine schnelle Google-Suche ergab lahme Ergebnisse, was mich zu der Annahme führte, dass die Verwendung nicht besonders beliebt ist.

  • Was ist es?
  • Benutzt es jemand? (<script type="text/ecmascript">)
  • Warum?
Jason
quelle

Antworten:

168

JavaScript ist eine Teilmenge von ECMAScript. JavaScript ist im Grunde genommen ECMAScript, baut aber darauf auf. Sprachen wie ActionScript, JavaScript und JScript verwenden ECMAScript als Kern. Zum Vergleich: AS / JS / JScript sind 3 verschiedene Autos, aber sie verwenden alle den gleichen Motor ... jedes ihrer Äußeren ist jedoch anders, und es wurden mehrere Modifikationen an jedem vorgenommen, um es einzigartig zu machen.

Die Geschichte ist, Brendan Eich schuf Mokka, der zu LiveScript und später zu JavaScript wurde. Netscape präsentierte JavaScript Ecma International , das Standards entwickelt, und es wurde in ECMA-262, auch bekannt als ECMAScript, umbenannt.

Es ist wichtig zu beachten, dass Brendan Eichs "JavaScript" nicht dasselbe JavaScript ist, das ein Dialekt von ECMAScript ist. Er baute die Kernsprache auf , die in ECMAScript umbenannt wurde, was sich von dem JavaScript unterscheidet, das Browser-Anbieter heutzutage implementieren.

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

meder omuraliev
quelle
33
Macht das Javascript nicht zu einer Teilmenge von ECMAScript, wenn ECMAScript der Kern ist?
Ryan Amos
15
JavaScript hat (historisch gesehen) Dinge, die ECMAScript nicht tut. JavaScript (versucht es historisch) hat alles, was ECMAScript hat. Daher ist der Beitrag korrekt, ECMAScript ist eine Teilmenge von JavaScript. Beide werden jedoch ziemlich nahe beieinander gehalten (während ActionScript nicht mehr wirklich als ECMAScript-Sprache betrachtet wird, ist es so weit auseinander gegangen, obwohl es seine Wurzeln darin hatte). Die Begriffe ES und JS sind fast austauschbar.
Nathan Wall
22
Ich denke nicht, dass es richtig ist zu sagen, dass "ECMAScript eine Teilmenge von JavaScript ist." Stattdessen weist der von Ihnen zitierte Wikipedia-Artikel darauf hin, dass ECMAScript ein Standard ist und dass JavaScript eine bekannte Implementierung dieses Standards (mit Erweiterungen) ist .
DavidRR
2
Ich denke, Sie ECMAScript is a superset of Javascript
wollten
6
Da Javascript ECMAScript implementiert und auch darauf aufbaut, würde ich sagen, dass Javascript daher eine Obermenge von ECMAScript ist.
RayLoveless
76

ECMAScript ist ein Standard . JavaScript und ActionScript sind bekannte Implementierungen des ECMAScript-Standards.

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

Daniel A. White
quelle
32

ECMAScript = ES:

  • ECMAScript ist ein Standard für Skriptsprachen.

  • Sprachen wie Javascript basieren auf dem ECMAScript-Standard.

  • Der ECMA-Standard basiert auf mehreren Technologien, von denen die bekanntesten JavaScript (Netscape) und JScript (Microsoft) sind.

  • ECMA bedeutet European Computer Manufacturer's Association


Auf der anderen Seite:


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 weitere 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.


Für weitere Informationen zu dieser Kasse meine vollständige Antwort hier Was ist der Unterschied zwischen JavaScript und ECMAScript?

Mahmoud Zalt
quelle
Fast jeder Browser unterstützt JavaScript, aber es gibt viele CLI-Browser wie Links und Lynx, die dies nicht tun. Daneben gibt es: links2, w3m, elinks und edbrowse. Die meisten CLI-Browser unterstützen JS ebenfalls nicht.
Cassio Seffrin
16

ECMA steht für - European Computer Manufacturer's Association. ECMAScript ist ein Standard für eine Skriptsprache. Es gibt die Kernfunktionen an, die eine Skriptsprache bereitstellen soll, und wie diese Funktionen implementiert werden sollen. Javascript wurde ursprünglich bei Netscape erstellt und sie wollten die Sprache standardisieren. Daher reichten sie die Sprache zur Vereinheitlichung bei der European Computer Manufacturer's Association (ECMA) ein. Es gab jedoch Markenprobleme mit dem Namen Javascript, und der Standard wurde ECMAScript genannt, wie er auch heute noch heißt.

Sie können also jede Skriptsprache verwenden, die den ECMA-Standard implementiert, da die Webbrowser die ECMAScript-Interpretation unterstützen, wenn Sie ( <script type="text/ecmascript">) angeben .

Krishna
quelle
2

ECMA ist die Organisation, die JavaScript standardisiert hat. Sie nannten die Sprache ECMAScript, aber das "JavaScript" war der Begriff, der den "Namenswettbewerb" gewann.

cateof
quelle
1

Hier ist eine andere Ansicht zu diesem Thema. Es ist mehr oder weniger aus Erfahrung, ich kann nichts zitieren. Jeder JavaScript-Validator und jeder, der mit JavaScript arbeitet, wird Ihnen dies mitteilen

alert("hello World");

ist gültiges JavaScript. Und ich würde auch zustimmen.

Ein ECMAScript-Validator wird Ihnen jedoch wahrscheinlich mitteilen, dass er nicht gültig ist, da alert () nicht Teil des ECMAScript ist, sondern eine typische Funktion von JavaScript für Browser. Es gibt viele Funktionen von JavaScript, die nur in einer Browserumgebung sinnvoll sind: fi window.navigator, window.document, WebSocket, navigator.geolocation. Einige würden sogar sagen, dass dies nicht Teil von JavaScript ist, sondern Teil von HTML5, was nicht stimmt, da HTML5 nur die Auszeichnungssprache ist. Diese ausgefallenen neuen Funktionen werden jedoch häufig als HTML5 bezeichnet, obwohl sie in JavaScript implementiert sind.

JavaScript kann auch für serverseitiges Scripting verwendet werden. Dann machen alle Geolcation- oder Medien-Apis keinen Sinn. Daher ist JavaScript für serverseitiges Scripting wieder viel näher an ECMAScript, das diese typischen Browserfunktionen nicht bietet.

Ich konnte nicht wirklich herausfinden, ob das Math-Objekt (z. B. Math.sqrt (9)) Teil von ECAMScript ist oder ob ECMAScript wirklich nur die Syntax der Sprache definiert und überhaupt keine eingebaute Funktionalität hat. Ein ECMAScript-Validator akzeptierte jedoch Math.sqrt (9) als gültiges ECMAScript, während var test = window.document; Die ECMA-Validierung ist fehlgeschlagen.

Obwohl der folgende Link auf eine JavaScript-Dokumentation verweist, handelt es sich meiner Meinung nach um den integrierten Funktionsumfang (Objekte und Funktionen) von ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Meiner Meinung nach ist JavaScript sehr eng mit Browsern verbunden, während ECMAScript (wenn überhaupt) nur sehr grundlegende Funktionen bietet.

haferblues
quelle