Quelle est la différence entre ECMAScript et JavaScript? D'après ce que j'ai déduit, ECMAScript est la norme et JavaScript est l'implémentation. Est-ce correct?
javascript
ecma262
Gars
la source
la source
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)
la source
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.
la source
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:
la source
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") )
la source
Qu'est-ce que ECMAScript, c'est-à-dire ES?
Javascript est-il exactement le même que ECMAScript?
API DOM comme:
document.getElementById('id');
D'autres langues utilisent-elles la norme ECMAScript?
Pourquoi est-il appelé ECMAScript?
la source
Différentes versions de JavaScript sont des implémentations de la norme ECMAScript.
la source
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)
la source
A ma connaissance, ECMAScript est la "Théorie" ou "Spécification", et Javascript est "Pratique" ou "Implémentation".
la source
JavaScript est un langage ECMAScript.
ECMAScript n'est pas nécessairement JavaScript.
la source
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.
la source
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.
la source
ECMAScript est une norme pour JavaScrip t, regardez ces instructions de MDN :
Javascript
ECMAScript
Pour plus d'informations, visitez ici
la source
Voici mes découvertes:
JavaScript: le guide définitif , écrit par David Flanagan fournit une explication très concise:
Un article de blog de Microsoft semble d'accord avec ce que Flanagan explique en disant ..
.. ce qui me fait penser à toutes les occurrences
JavaScript
dans ce poste de référence (par Microsoft à nouveau) doit être remplacé parECMASCript
. En fait, ils semblent être prudents en n'utilisantECMAScript
que dans cette page de documentation plus récente et plus technique.w3schools.com semble être d'accord avec les définitions ci-dessus:
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:
et lorsque vous voyez les notes de publication récentes, vous verrez toujours une référence aux normes ECMAScript, telles que:
Mozilla Web Docs a également une page qui explique la différence entre ECMAScript et JavaScript:
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:
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.
la source
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.
la source
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.
la source