Réponses:
ECMAScript est le langage, alors que JavaScript, JScript et même ActionScript 3 sont appelés "dialectes". Wikipédia apporte un éclairage à ce sujet.
Je pense qu'une petite leçon d'histoire est due.
JavaScript était à l'origine nommé Mocha et a été remplacé par Livescript, mais est finalement devenu JavaScript.
Il est important de noter que JavaScript est venu avant ECMAscript et l'historique vous dira pourquoi.
Pour commencer depuis le début, JavaScript a dérivé son nom de Java et initialement Brendan Eich (le créateur de JS) a été invité à développer un langage qui ressemblait à Java pour le Web pour Netscape.
Eich, cependant, a décidé que Java était trop compliqué avec toutes ses règles et a donc décidé de créer un langage plus simple que même un débutant pourrait coder. Cela est évident dans des choses comme le relâchement de la nécessité d'avoir un point-virgule.
Une fois le langage terminé, l'équipe marketing de Netscape a demandé à Sun de lui permettre de le nommer JavaScript comme un coup marketing et c'est pourquoi la plupart des gens qui n'ont jamais utilisé JavaScript pensent que c'est lié à Java.
Environ un an ou deux après la sortie de JavaScript dans le navigateur, IE de Microsoft a pris le langage et a commencé à faire ses propres implémentations telles que JScript. Dans le même temps, IE dominait le marché et peu de temps après que Netscape ait dû fermer son projet.
Avant que Netscape ne tombe en panne, ils ont décidé de lancer une norme qui guiderait le chemin de JavaScript, nommée ECMAScript.
ECMAScript a eu quelques versions et en 1999, ils ont publié leur dernière version (ECMAScript 3) avant de passer en hibernation pour les 10 prochaines années. Au cours de ces 10 années, Microsoft a dominé les scènes, mais en même temps, il n'améliorait pas son produit et, par conséquent, Firefox est né (dirigé par Eich) et tout un tas d'autres navigateurs tels que Chrome, Opera.
ECMAScript a publié sa 5e édition en 2009 (la 4e édition a été abandonnée) avec des fonctionnalités telles que le mode strict. Depuis lors, ECMAScript a pris beaucoup d'élan et devrait publier sa 6e édition dans quelques mois avec les plus grands changements qu'il a connus jusqu'à présent.
Vous pouvez utiliser une liste de fonctionnalités pour ECMAScript 6 ici http://kangax.github.io/es5-compat-table/es6/ ainsi que la prise en charge du navigateur. Vous pouvez même commencer à écrire Ecmascript 6 comme vous le faites avec CoffeeScript et utiliser un compilateur pour compiler vers Ecmascript 5.
Que ECMAScript soit la langue et que JavaScript soit un dialecte est discutable, mais pas important. Si vous continuez à penser ainsi, cela pourrait vous embrouiller. Il n'y a aucun compilateur qui exécuterait ECMAScript, et je crois que JavaScript est considéré comme le langage qui implémente une norme appelée ECMAScript.
Il existe également d'autres langages remarquables qui implémentent ECMAScript tels que ActionScript (utilisé pour Flash)
ECMAScript = ES:
ECMAScript est une norme pour les langages de script.
Des langages comme Javascript sont basés sur la norme 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
JavaScript = JS:
JavaScript est l'implémentation la plus populaire de la norme ECMAScript.
Les fonctionnalités principales de Javascript sont basées sur la norme ECMAScript, mais Javascript possède également d'autres fonctionnalités supplémentaires qui ne figurent pas dans les spécifications / normes 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 possède un interpréteur JavaScript.
ES5 = ECMAScript 5:
ES5 est une version de ECMAScript (ancienne / actuelle).
ES5 est le JavaScript que vous connaissez et utilisez dans le navigateur aujourd'hui.
ES5 ne nécessite pas d'étape de construction (transpilers) pour le transformer en quelque chose qui fonctionnera dans les navigateurs d'aujourd'hui.
ECMAScript version 5 a été terminée en décembre 2009, les dernières versions de tous les principaux navigateurs (Chrome, Safari, Firefox et IE) ont implémenté la version 5.
La version 5.1 a été terminée en juin 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 est une version d'ECMAScript (nouvelle / future).
Officiellement, le nom ES2015 doit être utilisé à la place de ES6.
ES6 corrigera bon nombre des lacunes du langage de base traitées dans TypeScript et CoffeeScript.
ES6 est la prochaine itération de JavaScript, mais il ne fonctionne pas dans les navigateurs actuels.
Il existe de nombreux transpilateurs qui exporteront ES5 pour les exécuter dans les navigateurs.
BabelJS:
BabelJS est le transpilateur le plus populaire qui transforme le nouveau JavaScript ES6 en ancien JavaScript ES5.
BabelJS permet d'écrire la prochaine génération de JavaScript aujourd'hui (signifie ES2015).
BabelJS prend simplement le fichier ES2015 et le transforme en fichier ES5.
Les versions actuelles des navigateurs peuvent désormais comprendre le nouveau code JavaScript (ES2015), même si elles ne le prennent pas encore en charge.
TypeScript et CoffeeScript:
Les deux fournissent du sucre syntaxique au-dessus d'ES5, puis sont transcompilés en JavaScript conforme à ES5.
Vous écrivez TypeScript ou CoffeeScript puis le transpileur le transforme en JavaScript ES5.
JavaScript = ECMAScript + DOM + BOM ;
La spécification du langage ECMAScript® définit toute la logique de création et d'édition d'objets, de tableaux, de nombres, etc.
DOM ( D ocument O bjet M odèle) permet de communiquer avec des documents HTML / XML (par exemple document.getElementById('id');
).
BOM ( B rowser O bjet M odel) est la hiérarchie des objets de navigation (par exemple , l' objet de localisation, objet de l' histoire, les éléments de forme).
Historique de la dénomination JavaScript:
Mocha ► LiveScript ► JavaScript ► (une partie de JS a donné lieu) ECMA-262 ► ECMAScript ► JavaScript (se compose d'ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
est simplement basée sur les termes documentés globaux convenus dont JavaScript est composé.
Techniquement, ECMAScript est le langage que tout le monde utilise et implémente - c'est la spécification créée il y a de nombreuses années lorsque Netscape et Microsoft se sont assis et ont tenté de normaliser les scripts entre JavaScript (langage de script de Netscape) et JScript (Microsoft).
Par la suite, tous ces moteurs implémentent ostensiblement ECMAScript, mais JavaScript (le nom) traîne maintenant pour les deux raisons de nommage traditionnelles et comme terme marketing par Mozilla pour leurs différentes extensions non standard (qu'ils veulent pouvoir réellement "version") )
Qu'est-ce que ECMAScript, c'est-à-dire ES?
ECMAScript est une norme pour un langage de script et le langage Javascript est basé sur la norme ECMAScript.
Javascript est-il exactement le même que ECMAScript?
JavaScript = ECMAScript + API DOM;
API DOM comme: document.getElementById('id');
D'autres langues utilisent-elles la norme ECMAScript?
Pourquoi est-il appelé ECMAScript?
Je sais que c'est un ancien poste mais j'espère que cela aidera quelqu'un.
Dans les années 1990, différentes versions de js ont commencé à sortir comme javascript de netscape, script Js de Microsoft. Donc ecmascript a été introduit comme standard. Mais ecmascript ne forme qu'une partie de javascript qui spécifie sa syntaxe de base, ses types, ses objets, etc. Cela explique probablement les implémentations incohérentes de javascript dans diff. navigateurs
Référence - Wrox (Javascript professionnel pour les développeurs Web)
JavaScript est un langage ECMAScript.
ECMAScript n'est pas nécessairement JavaScript.
Les réponses existantes paraphrasent assez bien le point principal.
Le point principal est que ECMAScript est le langage abstrait nu, sans aucune extension spécifique au domaine, il est inutile en soi. La spécification définit uniquement le langage et les objets principaux de celui-ci.
Bien que JavaScript et ActionScript et d'autres dialectes y ajoutent la bibliothèque spécifique au domaine, vous pouvez donc l'utiliser pour quelque chose de significatif.
Il existe de nombreux moteurs ECMAScript , certains sont open source, d'autres sont propriétaires. Vous pouvez les lier à votre programme puis ajouter vos fonctions natives à l'objet global pour que votre programme devienne scriptable. Bien que le plus souvent, ils soient utilisés dans les navigateurs.
Javascript était le nom d'origine, destiné à capitaliser sur la popularité de java. L'ECMA est l'organisme de normalisation qui supervise la norme qui a finalement été mise en place, de sorte que les noms sont à peu près équivalents.
Les implémentations ont d'autres noms, comme V8 ou Rhino, etc.
ECMAScript est une norme pour JavaScrip t, regardez ces instructions de MDN :
JavaScript (JS) est un langage de programmation léger interprété ou compilé par JIT avec des fonctions de première classe. Bien qu'il soit plus connu sous le nom de langage de script pour les pages Web, de nombreux environnements sans navigateur l'utilisent également, comme node.js, Apache CouchDB et Adobe Acrobat. JavaScript est un langage dynamique multi-paradigme basé sur des prototypes, prenant en charge les styles orientés objet, impératifs et déclaratifs (par exemple la programmation fonctionnelle). En savoir plus sur JavaScript.
La norme pour JavaScript est ECMAScript . Depuis 2012, tous les navigateurs modernes prennent entièrement en charge ECMAScript 5.1. Les navigateurs plus anciens prennent en charge au moins ECMAScript 3. Le 17 juin 2015, ECMA International a publié la sixième version majeure d'ECMAScript, officiellement appelée ECMAScript 2015, et était initialement appelée ECMAScript 6 ou ES6. Depuis lors, les normes ECMAScript suivent des cycles de publication annuels. Cette documentation fait référence à la dernière version provisoire, qui est actuellement ECMAScript 2018.
Pour plus d'informations, visitez ici
Voici mes découvertes:
JavaScript: le guide définitif , écrit par David Flanagan fournit une explication très concise:
JavaScript a été créé chez Netscape au tout début du Web, et techniquement, "JavaScript" est une marque de commerce sous licence de Sun Microsystems (maintenant Oracle) utilisée pour décrire l'implémentation du langage par Netscape (maintenant Mozilla). Netscape a soumis la langue de normalisation à l'ECMA et en raison de problèmes de marque, la version standardisée de la langue a été bloquée avec le nom maladroit "ECMAScript". Pour les mêmes raisons de marque, la version de Microsoft du langage est officiellement connue sous le nom de "JScript". En pratique, presque tout le monde appelle le langage JavaScript.
Un article de blog de Microsoft semble d'accord avec ce que Flanagan explique en disant ..
ECMAScript est le nom officiel du langage JavaScript que nous connaissons et aimons tous.
.. ce qui me fait penser à toutes les occurrences JavaScript
dans ce poste de référence (par Microsoft à nouveau) doit être remplacé par ECMASCript
. En fait, ils semblent être prudents en n'utilisant ECMAScript
que dans cette page de documentation plus récente et plus technique.
w3schools.com semble être d'accord avec les définitions ci-dessus:
JavaScript a été inventé par Brendan Eich en 1995 et est devenu une norme ECMA en 1997. ECMA-262 est le nom officiel de la norme. ECMAScript est le nom officiel de la langue.
La clé ici est: le nom officiel de la langue .
Si vous consultez les pages de version JavaScript de Mozilla , vous rencontrerez la déclaration suivante:
Obsolète. La version explicite et l'opt-in des fonctionnalités linguistiques étaient spécifiques à Mozilla et sont en cours de suppression. Firefox 4 était la dernière version faisant référence à une version JavaScript (1.8.5). Avec les nouvelles normes ECMA, les fonctionnalités du langage JavaScript sont désormais souvent mentionnées avec leur définition initiale dans les éditions ECMA-262 telles que ECMAScript 2015.
et lorsque vous voyez les notes de publication récentes, vous verrez toujours une référence aux normes ECMAScript, telles que:
La propriété ES2015 Symbol.toStringTag a été implémentée (bug 1114580).
Les méthodes ES2015 TypedArray.prototype.toString () et TypedArray.prototype.toLocaleString () ont été implémentées (bug 1121938).
Mozilla Web Docs a également une page qui explique la différence entre ECMAScript et JavaScript:
Cependant, le terme générique "JavaScript" tel qu'il est compris dans un contexte de navigateur Web contient plusieurs éléments très différents. L'un d'eux est le langage principal (ECMAScript), un autre est la collection des API Web, y compris le DOM (Document Object Model).
Conclusion
À ma connaissance, les gens utilisent le mot JavaScript de manière assez libérale pour faire référence à la spécification ECMAScript de base.
Je dirais que toutes les implémentations JavaScript modernes (ou moteurs JavaScript) sont en fait des implémentations ECMAScript. Vérifiez la définition du moteur V8 de Google, par exemple:
V8 est le moteur JavaScript hautes performances open source de Google, écrit en C ++ et utilisé dans Google Chrome, le navigateur open source de Google, et dans Node.js, entre autres. Il implémente ECMAScript comme spécifié dans ECMA-262.
Ils semblent utiliser le mot JavaScript et ECMAScript de manière interchangeable, et je dirais qu'il s'agit en fait d'un moteur ECMAScript?
Ainsi, la plupart des moteurs JavaScript implémentent en fait la norme ECMAScript, mais au lieu de les appeler moteurs ECMAScript, ils s'appellent eux-mêmes moteurs JavaScript. Cette réponse soutient également la façon dont je vois la situation.
Je doute que nous utiliserions jamais le mot "ECMAScript" sans le fait que le nom "JavaScript" appartient à Sun. À toutes fins utiles, la langue est JavaScript. Vous n'allez pas à la librairie à la recherche de livres ECMAScript, n'est-ce pas?
C'est un peu trop simple de dire que "JavaScript" est l'implémentation. JScript est l'implémentation de Microsoft.
JavaScript est une branche de langages formée autour de la norme ECMAScript. Je crois que l'ECMA est l'Association européenne des fabricants d'ordinateurs, pas que ce soit vraiment pertinent ou quoi que ce soit.
N'oubliez pas qu'un autre langage populaire formé autour de la norme ECMA Script est ActionScript, utilisé dans Adobe Flash / Flex.