ECMAScript 6.0 (ci-après dénommé ES6) est le standard de nouvelle génération du langage JavaScript et a été officiellement publié en juin 2015. Son objectif est de permettre au langage JavaScript d'être utilisé pour écrire des applications complexes à grande échelle et de devenir un langage de développement au niveau de l'entreprise.
Une question courante est ECMAScript. Quelle est la relation avec JavaScript ?
Pour clarifier cette question, nous devons revoir l’histoire. En novembre 1996, Netscape, le créateur de JavaScript, décide de soumettre JavaScript à l'Organisation internationale de normalisation ECMA, dans l'espoir que ce langage puisse devenir un standard international. L'année suivante, l'ECMA a publié la première version du document standard n° 262 (ECMA-262), qui stipulait la norme pour les langages de script de navigateur et appelait ce langage ECMAScript. Cette version est la version 1.0.
Ce standard a été développé pour le langage JavaScript depuis le début, mais il ne s'appelle pas JavaScript pour deux raisons. L'une d'elles est la marque Java. Selon l'accord de licence, seul Netscape peut légalement utiliser le nom JavaScript, et JavaScript lui-même a été enregistré en tant que marque par Netscape. Deuxièmement, je veux montrer que le développeur de ce langage est ECMA, et non Netscape, ce qui contribuera à garantir l'ouverture et la neutralité de ce langage.
Par conséquent, la relation entre ECMAScript et JavaScript est que le premier est une spécification du second, et le second est une implémentation du premier (d'autres dialectes ECMAScript incluent Jscript et ActionScript). Dans les situations quotidiennes, ces deux mots sont interchangeables.
Le terme ECMAScript 2015 (ES2015 en abrégé) est également souvent vu. Quel est le rapport avec ES6 ?
En 2011, après la sortie de la version 5.1 d'ECMAScript, le développement de la version 6.0 a commencé. Par conséquent, la signification originale du mot ES6 fait référence à la prochaine version du langage JavaScript.
Cependant, parce que cette version introduit trop de fonctionnalités grammaticales et pendant le processus de développement, de nombreuses organisations et individus continuent de soumettre de nouvelles fonctionnalités. Il est rapidement devenu évident qu'il ne serait pas possible d'inclure toutes les fonctionnalités qui seraient introduites dans une seule version. L'approche conventionnelle consiste à publier d'abord la version 6.0, puis la version 6.1 après un certain temps, puis la version 6.2, la version 6.3 et ainsi de suite.
Cependant, les normalisateurs ne veulent pas faire cela. Ils souhaitent que les mises à niveau des normes deviennent un processus régulier : n'importe qui, à tout moment, peut soumettre des propositions de nouvelle syntaxe au comité des normes, qui se réunit ensuite mensuellement pour évaluer si les propositions sont acceptables et quelles améliorations sont nécessaires. Si après de nombreuses réunions, une proposition est suffisamment mûre, elle peut officiellement entrer dans la norme. Cela signifie que les mises à niveau des versions standard deviennent un processus continu, avec des modifications chaque mois.
Le comité des normes a finalement décidé que la norme serait officiellement publiée en juin de chaque année en tant que version officielle de cette année-là. Dans les temps suivants, des modifications seront apportées sur la base de cette version. Jusqu'en juin de l'année prochaine, le projet deviendra naturellement la version de la nouvelle année. De cette façon, le numéro de version précédente n’est pas nécessaire, juste le cachet de l’année.
La première version d'ES6 est sortie en juin 2015. Le nom officiel est « ECMAScript 2015 Standard » (appelé ES2015). En juin 2016, la version légèrement révisée "ECMAScript 2016 Standard" (ES2016 en abrégé) a été publiée comme prévu. Cette version peut être considérée comme la version ES6.1, car la différence entre les deux est très faible (uniquement la méthode includes
). de l'instance de tableau est ajoutée et un opérateur d'exponentiation), fondamentalement la même norme. Selon le plan, la norme ES2017 sera publiée en juin 2017.
Par conséquent, ES6 est à la fois un terme historique et un terme général. Il désigne le standard de nouvelle génération de JavaScript après la version 5.1, couvrant ES2015, ES2016, ES2017, etc., et ES2015 est le nom officiel, faisant spécifiquement référence. à La version officielle de la norme linguistique publiée cette année-là. Lorsque ES6 est mentionné dans ce livre, il fait généralement référence à la norme ES2015, mais parfois il fait également référence au « langage JavaScript de nouvelle génération » en général.
Tout le monde peut soumettre une proposition au Comité des normes (également connu sous le nom de Comité TC39) Proposition de révision des normes linguistiques.
Une nouvelle syntaxe doit passer par cinq étapes, depuis le stade de proposition jusqu'à celui de norme formelle. Les modifications à chaque étape nécessitent l'approbation du comité TC39.
Étape 0 - Homme de paille (étape de présentation)
Étape 1 - Proposition (étape de sollicitation de commentaires)
Étape 2 - Draft (étape de rédaction)
Étape 3 - Candidat (étape de candidat)
Étape 4 - Étape terminée)
Tant qu'une proposition peut entrer dans l'étape 2, elle sera presque certainement incluse dans les futures normes formelles. Toutes les propositions ECMAScript actuelles peuvent être consultées sur le site officiel du TC39, Github.com/tc39/ecma262.
L'un des objectifs de la rédaction de ce livre est de suivre les dernières avancées du langage ECMAScript et d'introduire toute nouvelle syntaxe après la version 5.1. De nouvelles syntaxes qui sont clairement ou prometteuse destinées à être incluses dans la norme seront introduites.
ES6 du début au fin Il a fallu 15 ans pour qu'il sorte.
Comme mentionné précédemment, ECMAScript 1.0 a été publié en 1997. Au cours des deux années suivantes, ECMAScript 2.0 (juin 1998) et ECMAScript 3.0 (décembre 1999) ont été publiés en continu. La version 3.0 a été un énorme succès. Elle a été largement soutenue dans l’industrie et est devenue un standard commun. Elle a établi la syntaxe de base du langage JavaScript et est entièrement héritée des versions ultérieures. À ce jour, lorsque les débutants commencent à apprendre JavaScript, ils apprennent en réalité la version 3.0 de la syntaxe.
En 2000, ECMAScript 4.0 a commencé à être élaboré. Cette version a finalement échoué, mais la majeure partie de son contenu a été héritée par ES6. Par conséquent, le point de départ de la formulation de l’ES6 est en réalité l’année 2000.
Pourquoi l’ES4 n’a-t-il pas réussi ? Parce que cette version était trop radicale et constituait une mise à niveau complète vers ES3, certains membres du comité des normes n'étaient pas disposés à l'accepter. Le comité technique 39 (TC39) de l'ECMA est responsable de la formulation de la norme ECMAScript et compte parmi ses membres de grandes entreprises telles que Microsoft, Mozilla et Google.
En octobre 2007, la version préliminaire 4.0 d'ECMAScript a été publiée, et la version officielle devait initialement être publiée en août de l'année suivante. Il existe cependant de sérieuses divergences entre les parties quant à l’opportunité d’adopter cette norme. Les grandes entreprises, dirigées par Yahoo, Microsoft et Google, s'opposent aux mises à niveau majeures de JavaScript et préconisent des changements mineurs ; Mozilla, dirigé par le créateur de JavaScript Brendan Eich, insiste sur le projet actuel.
En juillet 2008, parce qu'il y avait trop de divergences entre les parties et que le débat était trop vif sur les fonctionnalités à inclure dans la prochaine version, ECMA a décidé de suspendre le développement d'ECMAScript 4.0 et de supprimer certaines des fonctionnalités qui impliquent des améliorations des fonctionnalités existantes. Une petite partie a été publiée sous le nom d'ECMAScript 3.1, tandis que d'autres idées radicales ont été développées et intégrées dans des versions ultérieures. En raison de l'atmosphère de la conférence, le nom de code du projet de cette version était Harmony. Peu de temps après la réunion, ECMAScript 3.1 a été renommé ECMAScript 5.
En décembre 2009, la version 5.0 d'ECMAScript a été officiellement publiée. Le projet Harmony a été divisé en deux. Certaines idées plus réalisables ont été nommées JavaScript.next et ont continué à être développées, et ont ensuite évolué vers ECMAScript 6. Certaines idées moins matures ont été considérées comme JavaScript.next.next et seront développées dans un avenir ultérieur ; . Pensez à relancer. La considération globale du comité TC39 est que ES5 restera fondamentalement compatible avec ES3, et que les corrections de syntaxe majeures et les nouvelles fonctionnalités seront complétées par JavaScript.next. À cette époque, JavaScript.next faisait référence à ES6, et après la sortie de la sixième version, il faisait référence à ES7. Le TC39 estime qu’ES5 deviendra le standard principal pour le développement JavaScript à la mi-2013 et conservera cette position au cours des cinq prochaines années.
En juin 2011, la version 5.1 d'ECMAscript a été publiée et est devenue une norme internationale ISO (ISO/IEC 16262:2011).
En mars 2013, la version préliminaire d'ECMAScript 6 a été gelée et aucune nouvelle fonctionnalité ne sera ajoutée. Une nouvelle fonctionnalité devrait être intégrée à ECMAScript 7.
En décembre 2013, la version préliminaire d'ECMAScript 6 a été publiée. Cette étape sera ensuite suivie d'une période de discussion de 12 mois pour entendre les commentaires de toutes les parties.
En juin 2015, ECMAScript 6 a été officiellement adopté et est devenu une norme internationale. Depuis 2000, 15 ans se sont écoulés.
Babel est un transcodeur ES6 largement utilisé. Le codeur peut convertir le code ES6 en code ES5 afin qu'il puisse être exécuté dans l'environnement existant. Cela signifie que vous pouvez écrire des programmes dans ES6 sans vous soucier de savoir si votre environnement existant le prend en charge. Ce qui suit est un exemple
1 // 转码前2 input.map(item => item + 1);3 4 // 转码后5 input.map(function (item) {6 return item + 1;7 });
. Le code original ci-dessus utilise des fonctions fléchées, Babel le convertit en une fonction normale, qui peut être exécutée dans un environnement JavaScript qui ne prend pas en charge les flèches. fonctions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!