Comment 'const' se comporte-t-il différemment de 'var' dans ES6 ?

Comprendre la portée de bloc avec 'const' dans ES6

L'un des ajouts les plus importants apportés par ECMAScript 6 (ES6) à JavaScript est la nouvelle syntaxe pour déclarer des variables : let et const. Dans ce contexte, la question est de savoir comment const est différent de var. La réponse correcte est que const crée une "portée de bloc".

Portée de bloc avec const

La portée de bloc signifie que la variable est seulement accessible dans le bloc où elle a été déclarée. C'est une caractéristique commune à de nombreux langages de programmation, cependant, c'était nouveau pour JavaScript avec l'arrivée d'ES6.

Par exemple, si nous déclarons une variable à l'aide de const dans une boucle for, cette variable ne sera accessible que dans le bloc de cette boucle et non en dehors. Voici un exemple illustratif :

for (let i = 0; i < 5; i++) {
  const x = i * 2;
  console.log(x);
}
console.log(x); // Erreur : x is not defined

Dans cet exemple, x est déclaré à l'aide de const à chaque itération de la boucle. Chaque déclaration est unique et ne concerne que l'itération spécifique de la boucle. Lorsque nous essayons de console.log(x) en dehors de la boucle, nous recevons une erreur indiquant que x n'est pas défini, car x n'est accessible qu'à l'intérieur du bloc de la boucle for.

Bonnes pratiques d'utilisation de const

L'utilisation de const est recommandée chaque fois que vous avez une valeur qui ne devrait pas être réaffectée. Cela rend votre code plus prévisible et plus facile à comprendre. Par exemple :

const PI = 3.14159;

Dans cet exemple, nous définissons PI comme une constante avec la valeur 3.14159. Cela indique clairement que PI ne doit pas et ne pourra pas être modifié par la suite dans le code, améliorant ainsi la lisibilité et la compréhension du code.

Cela dit, il est crucial de se rappeler qu'une variable const référencera toujours le même objet ou la même valeur, mais les propriétés de cet objet peuvent tout de même être modifiées. Par exemple :

const myObject = {name: "John"};
myObject.name = "Jane";   // C'est permis, modifie une propriété de l'objet
console.log(myObject); // {name: "Jane"}

myObject = {name: "Bob"}; // Erreur, myObject est une constante, sa référence ne peut pas être modifiée

En résumé, const introduit une portée de bloc en JavaScript et les variables déclarées avec const ne peuvent pas être réaffectées. Cependant, si une variable const fait référence à un objet, les propriétés de cet objet peuvent être modifiées.

Related Questions

Trouvez-vous cela utile?