Quelles sont les principales nouveautés de chaque version de JavaScript ? Quelle version dois-je cibler?

author
1 minute, 41 seconds Read

Je commençais donc un nouveau projet TypeScript et je me demandais quelle version de JavaScript / ECMA Script cibler. Nous pouvons actuellement choisir entre ES5, ES2015, ES2016, ES2017 et ES2018 !

Les deux éléments majeurs à prendre en compte lors du choix de votre version cible JavaScript sont :

  • Environnement cible – Navigateur de bureau ? Mobile ? NodeJS?
  • Quelles fonctionnalités JS ai-je besoin – Classes ? Modules ? Fonctions asynchrones?

Nous avons la chance d’être à l’ère du navigateur Evergreen, donc le support des dernières fonctionnalités est très bon dans la plupart des environnements, cependant il y a toujours des situations où les utilisateurs ont des appareils plus anciens, ou vous êtes coincé sur une ancienne version de NodeJS.

Pour cette raison, ma recommandation générale est de cibler la plus ancienne version qui a les fonctionnalités dont vous avez besoin. Cela donnera un bon équilibre entre le support d’un large environnement cible et l’accès à de nouvelles fonctionnalités impressionnantes 🙂

Ci-après, j’ai résumé ce que je vois comme les nouvelles fonctionnalités majeures publiées dans chaque version de ECMA Script. Pour une liste complète, ainsi que tous les détails sur le support de l’environnement cible, consultez l’impressionnante table de compatibilité de Kangax.

ES5 (2009)

  • C’est la version de base de JS que vous pouvez généralement supposer que tous les run-times (sauf les vraiment vieux !) supporteront.

ES6 / ES2015

  • Modules standard – import et export
  • Promesses standardisées
  • Classes &Héritage
  • Block-scoped variables – letet const
  • Template Literals
  • Destruction d’objets en variables
  • Fonctions génératrices
  • Structures de données Map et Set
  • Internationalisation des chaînes de caractères, nombres et dates via API

ES7 / ES2016

  • Array.includes()
  • Opérateur d’exposant numérique (puissance de) **

ES8 / ES2017

  • Fonctions asynchrones
  • Objet.entries
  • Fonctions de remplissage de chaîne de caractères

ES9 / ES2018

  • Restauration d’objet/étalement const obj = { ...props };
  • Itération asynchrone for await (...) {
  • Fonction Promise finally()
  • Améliorations des expressions régulières (lookbehind, groupes nommés)

.

Similar Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.