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".
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
.
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.