Qu'est-ce qu'ECMAScript?


118

Dans Visual Studio, lorsque je configure mon type de script sur JavaScript, cela apparaît comme une option dans intellisense.

Une recherche rapide sur Google a donné des résultats médiocres, ce qui m'a amené à croire que ce n'est pas très populaire à utiliser.

  • Qu'Est-ce que c'est?
  • Quelqu'un l'utilise-t-il? (<script type="text/ecmascript">)
  • Pourquoi?


Connaître la différence entre ECMAScript et Javascript aide également à comprendre ECMAScript.
RBT

Réponses:


169

JavaScript est un sous-ensemble d'ECMAScript. JavaScript est fondamentalement ECMAScript à sa base mais s'appuie sur lui. Les langages tels que ActionScript, JavaScript, JScript utilisent tous ECMAScript comme noyau. À titre de comparaison, AS / JS / JScript sont 3 voitures différentes, mais elles utilisent toutes le même moteur ... chacun de leurs extérieurs est différent cependant, et il y a eu plusieurs modifications apportées à chacune pour la rendre unique.

L'histoire est que Brendan Eich a créé Mocha qui est devenu LiveScript, puis JavaScript. Netscape a présenté JavaScript à Ecma International , qui développe des normes et il a été renommé ECMA-262 alias ECMAScript.

Il est important de noter que le "JavaScript" de Brendan Eich n'est pas le même JavaScript qui est un dialecte d'ECMAScript. Il a construit le langage de base qui a été renommé ECMAScript, qui diffère du JavaScript que les fournisseurs de navigateurs implémentent aujourd'hui.

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


33
Cela ne fait-il pas de Javascript un sous-ensemble d'ECMAScript, si ECMAScript est le noyau?
Ryan Amos

15
JavaScript (historiquement) a des choses qu'ECMAScript n'a pas. JavaScript (essaie historiquement de) avoir tout ce qu'ECMAScript a. Par conséquent, le message est correct, ECMAScript est un sous-ensemble de JavaScript. Cependant, les deux sont assez proches l'un de l'autre (alors qu'ActionScript n'est plus vraiment considéré comme un langage ECMAScript, il a tellement divergé, même s'il y avait ses racines). Les termes ES et JS sont presque interchangeables.
Nathan Wall

22
Je ne pense pas qu'il soit exact de dire que "ECMAScript est un sous-ensemble de JavaScript". Au lieu de cela, l'article Wikipédia que vous citez indique qu'ECMAScript est une norme et que JavaScript est une implémentation bien connue de cette norme (avec des extensions) .
DavidRR

2
Je pense que vous vouliez direECMAScript is a superset of Javascript
Callat

6
Parce que Javascript implémente ECMAScript et construit également dessus, je dirais que Javascript est donc un sur-ensemble d'ECMAScript.
RayLoveless le


32

ECMAScript = ES:

  • ECMAScript est un standard pour un langage de script.

  • Des langages comme Javascript sont basés sur le standard ECMAScript.

  • ECMA Standard est basé sur plusieurs technologies d'origine, les plus connues étant JavaScript (Netscape) et JScript (Microsoft).

  • ECMA signifie European Computer Manufacturer's Association


D'un autre côté:


JavaScript = JS:

  • JavaScript est l'implémentation la plus populaire du standard ECMAScript.

  • Les principales fonctionnalités de Javascript sont basées sur le standard ECMAScript, mais Javascript a également d'autres fonctionnalités supplémentaires qui ne sont pas dans les spécifications / standards ECMA.

  • ActionScript et JScript sont d'autres langages qui implémentent ECMAScript.

  • JavaScript a été soumis à l'ECMA pour normalisation, mais en raison de problèmes de marque avec le nom Javascript, la norme est devenue ECMAScript.

  • Chaque navigateur dispose d'un interpréteur JavaScript.


Pour plus de détails sur cette commande, ma réponse complète ici Quelle est la différence entre JavaScript et ECMAScript?


presque tous les navigateurs prennent en charge JavaScript, mais il y a beaucoup de navigateurs CLI comme les liens et lynx qui ne le font pas, à côté de ceux-ci, il y a: links2, w3m, elinks et edbrowse. La majorité des navigateurs CLI ne prennent pas en charge JS également.
Cassio Seffrin

16

ECMA signifie - European Computer Manufacturer's Association. ECMAScript est un standard pour un langage de script. Il spécifie les fonctionnalités de base qu'un langage de script doit fournir et comment ces fonctionnalités doivent être implémentées. Javascript a été créé à l'origine chez Netscape, et ils voulaient standardiser le langage. Ainsi, ils ont soumis le langage à l'Association européenne des fabricants d'ordinateurs (ECMA) pour la normalisation. Mais, il y avait des problèmes de marque avec le nom Javascript, et la norme est devenue ECMAScript, qui est le nom qu'elle porte également aujourd'hui.

Vous pouvez donc utiliser n'importe quel langage de script implémentant la norme ECMA car les navigateurs Web prennent en charge l'interprétation ECMAScript lorsque vous spécifiez ( <script type="text/ecmascript">).


2

ECMA est l'organisation qui a standardisé JavaScript. Ils ont nommé le langage ECMAScript, mais le "JavaScript" était le terme qui a remporté le "concours de noms"


1

Voici un point de vue différent sur ce sujet. C'est plus ou moins par expérience, je ne peux rien citer. Tout validateur JavaScript et tous ceux qui travaillent avec JavaScript vous le diront

alert("hello World");

est un JavaScript valide. Et je suis également d'accord.

Cependant, un validateur ECMAScript vous dira probablement qu'il n'est pas valide, car alert () ne fait pas partie de ECMAScript, mais une fonctionnalité typique de JavaScript pour les navigateurs. Il existe de nombreuses fonctionnalités de JavaScript, qui n'ont de sens que dans un environnement de navigateur, fi window.navigator, window.document, WebSocket, navigator.geolocation. Certains diront même que cela ne fait pas partie de JavaScript, mais de HTML5, ce qui n'est pas vrai, car HTML5 n'est que le langage de balisage. Cependant, ces nouvelles fonctionnalités sophistiquées sont souvent appelées HTML5, même si elles sont implémentées en JavaScript.

JavaScript peut également être utilisé pour les scripts côté serveur. Ensuite, toutes les API de géolcation ou de médias n'ont aucun sens. Ainsi, JavaScript pour les scripts côté serveur est à nouveau beaucoup plus proche d'ECMAScript, qui n'a pas ces fonctionnalités de navigateur typiques.

Je ne pouvais pas vraiment savoir si l'objet Math (par exemple Math.sqrt (9)) faisait partie d'ECAMScript, ou si ECMAScript définit vraiment simplement la syntaxe du langage et n'a aucune fonctionnalité intégrée. Mais un validateur ECMAScript a accepté Math.sqrt (9) comme ECMAScript valide, alors que var test = window.document; a échoué la validation ECMA.

Même si le lien suivant vers une documentation JavaScript, il s'agit à mon avis de l'ensemble de fonctionnalités intégrées (objets et fonctions) d'ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Donc, à mon avis, JavaScript est très étroitement lié aux navigateurs, alors qu'ECMAScript n'a en réalité qu'un ensemble très basique de fonctionnalités (voire pas du tout).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.