Question

Quelle est la différence entre ECMAScript et JavaScript? D'après ce que j'ai déduis, ECMAScript est la norme et JavaScript est la mise en œuvre. Est-ce exact?

Était-ce utile?

La solution

ECMAScript est la langue, alors que JavaScript, JScript, et même ActionScript 3 sont appelés "dialectes". Wikipédia jette une certaine lumière sur ce point.

Autres conseils

Je pense qu'une petite leçon d'histoire est due.

JavaScript a été nommé Mocha et a changé à LiveScript mais est finalement devenu JavaScript.

Il est important de noter que JavaScript est venu avant ECMAScript et l'histoire vous dira pourquoi.

Pour commencer dès le début, JavaScript tire son nom de Java et d'abord Brendan Eich (le créateur de JS) a été invité à développer un langage qui ressemblait à Java pour le Web Netscape.

Eich, mais a décidé que Java était trop compliqué avec toutes ses règles et ainsi définies pour créer un langage plus simple que même un débutant peut coder. Cela est évident dans de telles choses comme l'assouplissement de la nécessité d'avoir un point-virgule.

Une fois la langue terminée, l'équipe de marketing de Netscape a demandé Sun pour leur permettre de le nommer JavaScript comme un coup de marketing et donc pourquoi la plupart des gens qui ont jamais JavaScript utilisés pensent qu'il est lié à Java.

Environ un an ou deux après la sortie dans le navigateur, IE de Microsoft de JavaScript a la langue et a commencé à faire ses propres implémentations telles que JScript. En même temps, IE dominait le marché et peu de temps après Netscape a dû fermer son projet.

Avant Netscape est descendu, ils ont décidé de commencer une norme qui guide le chemin de JavaScript, ECMAScript nommé.

ECMAScript avait quelques communiqués et en 1999 ils ont sorti leur dernière version (ECMAScript 3) avant d'aller 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, ils s'amélioraient pas leur produit et donc Firefox est né (dirigé par Eich) et un tas d'autres navigateurs tels que Chrome, Opera.

ECMAScript a publié son 5ème édition en 2009 (la 4e édition a été abandonnée) avec des fonctionnalités telles que le mode strict. Depuis lors, ECMAScript a gagné beaucoup d'élan et devrait libérer sa 6e édition en quelques mois à partir de maintenant avec les plus grands changements a son jusqu'ici.

Vous pouvez utiliser une liste de fonctionnalités pour ECMAScript 6 ici http://kangax.github.io/es5 -compat table / ES6 / et aussi le support du navigateur. Vous pouvez même commencer à écrire Ecmascript 6 comme vous le faites avec CoffeeScript et utilisez un compilateur pour compiler jusqu'à Ecmascript 5.

Que ECMAScript est la langue et JavaScript est un dialecte est discutable, mais pas d'importance. Si vous continuez à penser comme cela, il pourrait vous confondre. Il n'y a pas là compilateur qui fonctionnerait ECMAScript, et je crois que JavaScript est considéré comme la langue qui met en œuvre une norme appelée ECMAScript.

Il y a aussi d'autres langues notables qui mettent en œuvre ECMAScript tels que ActionScript (utilisé pour Flash)

ECMAScript = ES:

  • ECMAScript est une norme pour les langages de script.

  • langues comme Javascript sont basées sur la norme ECMAScript.

  • ECMA standard est basée sur plusieurs technologies provenant, le plus connu étant JavaScript (Netscape) et JScript (Microsoft).

  • ECMA signifie Association European Computer Manufacturer

JavaScript = JS:

  • JavaScript est la mise en œuvre la plus populaire de la norme ECMAScript.

  • Les caractéristiques essentielles de Javascript sont basés sur la norme ECMAScript, mais Javascript a également d'autres fonctionnalités supplémentaires qui ne sont pas les spécifications ECMA / standard.

  • ActionScript et JScript sont d'autres langues qui mettent en œuvre l'ECMAScript.

  • JavaScript a été soumis à la normalisation ECMA, mais en raison de problèmes de marque avec le nom Javascript est devenu la norme appelée ECMAScript.

  • Chaque navigateur a un interpréteur JavaScript.

ES5 = ECMAScript 5:

  • ES5 est une version de la ECMAScript (ancienne / actuelle un).

  • ES5 est le JavaScript que vous connaissez et utilisez aujourd'hui dans le navigateur.

  • ES5 ne nécessite pas une étape de construction (transpilers) pour le transformer en quelque chose qui se déroulera dans les navigateurs d'aujourd'hui.

  • Version ECMAScript 5 a été achevé en Décembre 2009, les dernières versions de tous les principaux navigateurs (Chrome, Safari, Firefox et IE) ont mis en œuvre la version 5.

  • La version 5.1 a été achevé en Juin 2011.

ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:

  • ES2015 est une version du ECMAScript (nouveau / futur un).

  • Officiellement, le nom ES2015 doit être utilisé au lieu de ES6.

  • ES6 abordera de nombreuses lacunes linguistiques de base traitées dans Tapuscrit et CoffeeScript.

  • ES6 est la prochaine itération de JavaScript, mais il ne fonctionne pas dans les navigateurs d'aujourd'hui.

  • Il y a un certain nombre transpilers qui exporteront ES5 pour faire fonctionner dans les navigateurs.

BabelJS:

  • BabelJS est le plus populaire transpiler qui transforme JavaScript nouveau ES6 Old JavaScript ES5.

  • BabelJS permet d'écrire le

    prochaine génération de JavaScript aujourd'hui (signifie ES2015).
  • BabelJS prend simplement le fichier ES2015 et le transformer en fichier ES5.

  • versions navigateurs actuels peuvent maintenant comprendre le nouveau code JavaScript (de ES2015), même si elles ne supportent pas encore.

tapuscrit et CoffeeScript:

  • Les deux fournit le sucre syntaxique au-dessus de ES5 puis sont transcompiled en JavaScript conforme à ES5.

  • Vous écrivez ou tapuscrit CoffeeScript alors le transpiler il se transforme en ES5 JavaScript.

Techniquement ECMAScript est la langue que tout le monde utilise et la mise en œuvre -. Il est la spécification créé il y a plusieurs années lorsque Netscape et Microsoft se sont assis et ont essayé de normaliser le script entre JavaScript (le langage de script de Netscape) et JScript (Microsoft)

Par la suite tous ces moteurs sont ostensiblement en œuvre ECMAScript, cependant JavaScript (le nom) se trouve maintenant autour pour des raisons de nommage traditionnelles, et comme un terme de marketing par Mozilla pour leurs diverses extensions non standard (qu'ils veulent être en mesure de réellement "version")

  

ECMAScript + DOM + BOM ;

  • ECMAScript® Language Specification définit toute logique pour la création et la modification d'objets, tableaux, chiffres, etc ...

  • DOM ( D Document de référence O bjet M odel) permet de communiquer avec des documents HTML / XML (par exemple document.getElementById('id');) .

  • BOM ( B rowser O bject 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).

Histoire de nommage JavaScript:

  

Mocha ► LiveScript ► ► JavaScript (partie de JS entraîné) ECMA-262 ► ► ECMAScript JavaScript (ECMAScript se compose de + DOM + BOM)

Qu'est-ce ECMAScript dire ES?

  

ECMAScript est une norme pour un langage de script et la   Javascript langage est basé sur la norme ECMAScript.

est Javascript exactement la même chose que ECMAScript?

  • Non, Javascript est pas exactement équivalent à ECMAScript.
  • Les caractéristiques de base de Javascript sont basés sur la norme ECMAScript, mais Javascript a aussi d'autres fonctionnalités supplémentaires qui ne sont pas dans les spécifications ECMA / standard.
  

JavaScript = ECMAScript + API DOM;

API DOM comme: document.getElementById('id');

Est-ce que d'autres langues utilisent la norme ECMAScript?

  • Oui, il y a des langues autres que JavaScript qui mettent en œuvre également comme base de la norme ECMAScript.
  • ActionScript (utilisé par Adobe Flash) et JScript (utilisé par Microsoft) sont les deux langues qui mettent en œuvre la norme ECMAScript.

Pourquoi est-il appelé ECMAScript?

  • Javascript a été créé à l'origine à Netscape, et ils ont voulu normaliser la langue. Ainsi, ils ont soumis la langue à la E enne C omputer M de abricant ssociation (ECMA) pour la normalisation.
  • Mais, il y avait des problèmes de marque avec le nom Javascript, et la norme est appelée ECMAScript, qui est le nom qu'elle détient aujourd'hui aussi bien.
  • En raison de problèmes de marque, la version de Microsoft de la langue est appelée JScript -. Même si JScript est, à sa base, la même langue que Javascript

Différentes versions JavaScript sont mises en œuvre de la norme ECMAScript.

Je sais que c'est un ancien poste, mais nous espérons que cela aidera quelqu'un.

Dans les années 1990, des différentes versions de js ont commencé à sortir comme javascript de netscape, le script js de Microsoft. Alors ECMAScript a été présenté comme une norme. Mais les formes ECMAScript seulement une partie de javascript qui spécifie sa syntaxe de base, types, objets etc. Probablement qui explique les implémentations incompatibles de javascript dans diff. navigateurs

Référence - Wrox (Javascript professionnel pour les développeurs Web)

Dans ma compréhension, ECMAScript est la « théorie » ou « Spécification » et Javascript est « travaux pratiques » ou « mise en œuvre ».

JavaScript est langage ECMAScript.

ECMAScript est pas nécessairement JavaScript.

réponses existantes paraphraser le principal point tout à fait bien.

Le point principal est que ECMAScript est la langue abstraite nue, sans aucun domaine des extensions spécifiques, il est inutile en soi. La spécification ne définit que la langue et les objets de base de celui-ci.

Alors que JavaScript et ActionScript et d'autres dialectes ajouter le domaine bibliothèque spécifique, donc vous pouvez l'utiliser pour quelque chose de significatif.

Il y a beaucoup de moteurs ECMAScript , certains d'entre eux sont open source, d'autres sont propriétaires. Vous pouvez les lier dans votre programme, puis ajouter vos fonctions natives à l'objet global afin que votre programme est scriptable. Bien que le plus souvent ils sont utilisés dans les navigateurs.

Javascript était le nom original, destiné à capitaliser sur la popularité de java. ECMA est l'organisme de normalisation qui supervise la norme qui a finalement été mis en place pour que les noms sont à peu près équivalents.

Implémentations ont d'autres noms, comme V8 ou Rhino, etc.

ECMAScript est une norme pour JavaScrip t, regardez ces déclarations de MDN :

JavaScript

  

JavaScript (JS) est un poids léger interprété ou compilé JIT   langage de programmation avec des fonctions de première classe. Bien qu'il soit le plus   bien connu comme le langage de script pour les pages Web, beaucoup de non-navigateur   environnements utilisent également, comme Node.js, Apache CouchDB et Adobe   Acrobate. JavaScript est un basé sur un prototype, multi-paradigme, dynamique   langue, orienté objet soutien, impératif et déclarative   (par exemple la programmation fonctionnelle) styles. En savoir plus sur JavaScript.


ECMAScript

  

La norme JavaScript est pour ECMAScript . A partir de 2012, tout le confort moderne   navigateurs prennent en charge pleinement ECMAScript 5.1. Les navigateurs plus anciens prennent en charge au moins   ECMAScript 3. Le 17 Juin, 2015, ECMA International a publié le sixième   version majeure de ECMAScript, qui est officiellement appelée ECMAScript   2015, et a été initialement appelé ECMAScript 6 ou ES6. Puisque   puis, les normes ECMAScript sont sur des cycles annuels d'émission. Cette   documentation fait référence à la dernière version préliminaire, qui est actuellement   ECMAScript 2018.

Pour plus d'informations, visitez le site

Je doute que nous ayons jamais utilisé le mot « ECMAScript » sinon pour le fait que le nom « JavaScript » est la propriété de Sun. Pour toutes fins utiles, la langue est JavaScript. On ne va pas à la librairie à la recherche de livres ECMAScript, pensez-vous?

Il est un peu trop simple de dire que « JavaScript » est la mise en œuvre. JScript est l'implémentation de Microsoft.

Voici mes conclusions:

JavaScript: The Definitive Guide , écrit par David Flanagan fournit une très explication concise:

  

JavaScript a été créé à Netscape dans les premiers jours du Web, et   techniquement, « JavaScript » est une marque déposée sous licence de Sun   Microsystems (maintenant Oracle) utilisé pour décrire (maintenant Mozilla) de Netscape   la mise en œuvre de la langue. Netscape a soumis la langue   normalisation ECMA et en raison de problèmes de marque, la   version standardisée de la langue était coincé avec le nom maladroit   "ECMAScript". Pour les mêmes raisons de marque, la version de Microsoft   la langue est officiellement connu sous le nom « JScript ». Dans la pratique, à peu près   tout le monde appelle le langage JavaScript.

blog par Microsoft semble être d'accord avec ce que Flanagan explique en disant ..

  

ECMAScript est le nom officiel de la langue JavaScript nous   savoir et de l'amour.

.. qui me fait penser à toutes les occurrences de JavaScript dans ce poste de référence (par Microsoft à nouveau) doit être remplacé par ECMASCript. Ils semblent vraiment être prudent avec l'utilisation ECMAScript que dans cette , plus récente et la page plus de documentation 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 un ECMA   norme en 1997. ECMA-262 est le nom officiel de la norme.   ECMAScript est le nom officiel de la langue.

La clé est ici: le nom officiel de la langue .

Si vous cochez pages version JavaScript de Mozilla , vous rencontrerez la déclaration suivante:

  

dépréciée. Le versioning explicite et opt-in de la langue   caractéristiques étaient spécifiques à Mozilla et sont en cours de suppression.   Firefox 4 est la dernière version qui faisait référence à une version JavaScript   (1.8.5). Avec de nouvelles normes ECMA, les fonctionnalités du langage JavaScript sont maintenant   souvent mentionné avec leur définition initiale dans ECMA-262 Editions   comme ECMAScript 2015.

et quand vous voyez les dernières notes de version, vous verrez toujours référence aux normes ECMAScript, telles que:

  
      
  • La propriété ES2015 Symbol.toStringTag a été mis en œuvre (bogue 1114580).

  •   
  • Le ES2015 TypedArray.prototype.toString () et   méthodes TypedArray.prototype.toLocaleString () ont été mises en œuvre   (Bogue 1121938).

  •   

Mozilla Web Docs dispose également d'un qui explique la différence entre ECMAScript et JavaScript:

  

Cependant, le terme générique « JavaScript » tel qu'il est compris dans un navigateur web   contexte contient plusieurs éléments très différents. L'un d'eux est le   langage de base (ECMAScript), une autre est la collection des API Web,   y compris les DOM (modèle objet de document).

Conclusion

Pour ma compréhension, les gens utilisent JavaScript peu généreusement le mot pour désigner le corspécification ECMAScript e.

Je dirais que, toutes les implémentations JavaScript modernes (ou moteurs JavaScript) sont en fait mises en œuvre ECMAScript. Vérifiez la définition du moteur V8 de Google, par exemple:

  

V8 est open source haute performance de Google moteur JavaScript, écrit   en C ++ et utilisé dans Google Chrome, le navigateur open source de Google,   et Node.js, entre autres. Elle met en œuvre ECMAScript comme indiqué dans   ECMA-262.

Ils semblent utiliser le mot JavaScript et ECMAScript interchangeable, et je dirais qu'il est en fait un moteur ECMAScript?

Les moteurs JavaScript Ainsi, la plupart mettent en œuvre effectivement la norme ECMAScript, mais au lieu de les appeler moteurs ECMAScript, ils appellent eux-mêmes les moteurs JavaScript. Cette répondre supporte également la façon dont je vois la situation.

JavaScript est une branche des langues formées autour de la norme ECMAScript. Je crois ECMA est l'European Computer Manufacturers Association, pas que cela soit vraiment pertinent ou quoi que ce soit.

Ne pas oublier une autre langue populaire formé autour de la norme ECMA Script est ActionScript, utilisé dans Adobe Flash / Flex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top