Aller au contenu

Fonctionnalités ES6 de JavaScript

ECMAScript 6 (ES6) est une mise à jour importante du langage JavaScript qui a introduit de nombreuses nouvelles fonctionnalités, rendant JavaScript plus puissant et plus efficace. Ce guide propose une exploration détaillée d’ES6, avec des explications complètes et de nombreux exemples de code pour vous aider à maîtriser ces nouvelles capacités.

Introduction à ES6

ES6, également connu sous le nom d’ECMAScript 2015, a apporté de nombreuses améliorations et de nouvelles fonctionnalités à JavaScript. Ces changements ont rendu le langage plus moderne et plus facile à utiliser, en améliorant à la fois la lisibilité et la maintenabilité.

Let et Const

L’un des changements les plus notables d’ES6 est l’introduction de let et const pour la déclaration des variables. Ces nouveaux mots-clés offrent de meilleures règles de portée et sont essentiels pour écrire un code robuste.

Let

Le mot-clé let vous permet de déclarer des variables dont la portée est limitée au bloc, à l’instruction ou à l’expression dans lesquels elles sont utilisées.


Output appears here after Run.

Dans l’exemple ci-dessus, x déclaré à l’intérieur du bloc if est une variable distincte de x déclaré à l’extérieur. Cela illustre la portée au niveau du bloc fournie par let.

Const

Le mot-clé const est utilisé pour déclarer des variables dont les valeurs ne sont pas destinées à changer. Il est limité au bloc, comme let.


Output appears here after Run.

Dans cet exemple, tenter de réaffecter une valeur à y provoque une erreur, car const déclare une constante dont la valeur ne peut pas être modifiée.

INFO

Utilisez toujours const pour les variables qui n’ont pas besoin d’être réaffectées afin d’éviter des modifications accidentelles.

Fonctions fléchées

Les fonctions fléchées offrent une syntaxe concise pour écrire des expressions de fonction. Elles lient également lexicalement la valeur de this, ce qui les rend particulièrement utiles pour écrire de courtes fonctions.


Output appears here after Run.

Ici, la fonction fléchée add prend deux paramètres et renvoie leur somme. La syntaxe concise rend le code plus lisible et plus compact.

INFO

Utilisez les fonctions fléchées pour une syntaxe concise et pour conserver le contexte lexical de this.

Littéraux de gabarit

Les littéraux de gabarit facilitent la création de chaînes de caractères, en particulier lorsqu’il faut intégrer des variables ou des expressions. Ils utilisent des accents graves (```) au lieu des guillemets.


Output appears here after Run.

Cet exemple montre comment les littéraux de gabarit vous permettent d’intégrer directement la variable name dans la chaîne, améliorant ainsi la lisibilité et la commodité.

Paramètres par défaut

Les paramètres par défaut vous permettent d’initialiser les paramètres d’une fonction avec des valeurs par défaut si aucune valeur n’est fournie.


Output appears here after Run.

Dans cet exemple, la fonction multiply attribue la valeur par défaut 1 à b si aucun deuxième argument n’est fourni, garantissant que la fonction renvoie toujours un résultat valide.

Affectation par décomposition

L’affectation par décomposition est une manière pratique d’extraire des valeurs de tableaux ou d’objets dans des variables distinctes.

Décomposition de tableau


Output appears here after Run.

Cet exemple montre comment la décomposition de tableau permet d’affecter les valeurs du tableau numbers à des variables individuelles a, b et c.

Décomposition d’objet


Output appears here after Run.

Dans cet exemple, la décomposition d’objet extrait les propriétés name et age de l’objet person dans des variables séparées.

Littéraux d’objet améliorés

ES6 améliore les littéraux d’objet, en permettant une syntaxe plus concise et plus lisible.


Output appears here after Run.

Ici, l’objet obj utilise des noms de propriétés abrégés et des définitions de méthodes, ce qui rend le littéral d’objet plus concis.

Promesses

Les promesses offrent un moyen de gérer plus efficacement les opérations asynchrones, en évitant le « callback hell » et en rendant le code plus lisible.


Output appears here after Run.

Dans cet exemple, une promesse est créée et se résout après 1 seconde avec le message « Success! ». La méthode then est utilisée pour traiter la valeur résolue.

INFO

Utilisez les promesses pour gérer proprement les opérations asynchrones et éviter le « callback hell ».

Classes

ES6 a introduit les classes, offrant une syntaxe plus claire et plus concise pour créer des objets et gérer l’héritage.


Output appears here after Run.

Cet exemple montre comment les classes en ES6 offrent une syntaxe claire et intuitive pour définir des objets et leur comportement.

Modules

Les modules vous permettent de découper votre code en fichiers séparés et d’importer/exporter des fonctions, des objets ou des primitives entre les fichiers.

Exportation


javascript
// math.js
export const add = (a, b) => a + b;

Importation


javascript
// main.js
import { add } from './math.js';
console.log(add(2, 3)); // 5

Dans ces exemples, la fonction add est exportée depuis math.js et importée dans main.js, montrant comment les modules facilitent l’organisation et la réutilisation du code.

Opérateurs rest et spread

Opérateur rest

L’opérateur rest (...) vous permet de représenter un nombre indéfini d’arguments sous forme de tableau.


Output appears here after Run.

Dans cet exemple, la fonction sum utilise l’opérateur rest pour rassembler tous les arguments dans un tableau, ce qui facilite les opérations dessus.

Opérateur spread

L’opérateur spread (...) permet d’étendre un itérable (comme un tableau) à des endroits où zéro ou plusieurs arguments ou éléments sont attendus.


Output appears here after Run.

Cet exemple montre comment l’opérateur spread peut être utilisé pour combiner des tableaux en un seul tableau, simplifiant ainsi le code.

Itérateurs et générateurs

Itérateurs

Les itérateurs sont des objets qui vous permettent de parcourir une collection, comme un tableau ou une chaîne de caractères.


Output appears here after Run.

Dans cet exemple, l’itérateur offre un moyen d’accéder à chaque élément du tableau de manière séquentielle.

Générateurs

Les générateurs sont des fonctions qui peuvent être mises en pause et reprises, offrant un moyen puissant de gérer les itérables.


Output appears here after Run.

Cet exemple montre comment une fonction génératrice peut produire des valeurs une par une, en mettant l’exécution en pause entre chaque yield.

Symboles

Les symboles sont un nouveau type de données primitif introduit dans ES6. Ils sont uniques et immuables, et sont souvent utilisés pour créer des clés d’objet uniques.


Output appears here after Run.

Dans cet exemple, symbol1 et symbol2 sont uniques, même s’ils ont la même description.

Maps et Sets

Maps

Les Maps sont des collections de paires clé-valeur où les clés peuvent être de n’importe quel type.


Output appears here after Run.

Cet exemple montre comment créer une map, définir des paires clé-valeur et récupérer des valeurs.

Sets

Les Sets sont des collections de valeurs uniques.


Output appears here after Run.

Dans cet exemple, le set ne contient que des valeurs uniques, même si 3 a été ajouté deux fois.

Proxys

Les proxys vous permettent de créer un proxy pour un autre objet, ce qui vous permet d’intercepter et de redéfinir des opérations fondamentales.


Output appears here after Run.

Cet exemple montre comment un proxy peut intercepter l’accès aux propriétés, en fournissant une réponse personnalisée lorsque la propriété est introuvable.

WeakMap et WeakSet

WeakMap

WeakMap est similaire à Map, mais n’autorise que des objets comme clés et n’empêche pas le ramassage des déchets s’il n’existe pas d’autres références à l’objet clé.


Output appears here after Run.

WeakSet

WeakSet est similaire à Set, mais n’autorise que des objets comme valeurs et n’empêche pas le ramassage des déchets s’il n’existe pas d’autres références à l’objet.


Output appears here after Run.

Conclusion

ES6 apporte une multitude de fonctionnalités qui font de JavaScript un langage plus robuste et plus efficace. En comprenant et en utilisant ces fonctionnalités, les développeurs peuvent écrire un code plus propre et plus facile à maintenir. Ce guide a offert un aperçu approfondi des aspects les plus importants d’ES6, avec des exemples pour vous aider à démarrer.

Practice

Quelles des fonctionnalités suivantes ont été introduites dans JavaScript ES6 ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.