En JavaScript vanille, les variables sont déclarées en utilisant le mot-clé ‘var
‘. Dans ES6, maintenant, vous pouvez définir des variables en utilisant également les mots-clés let
et const
. Ces trois mots-clés ont une syntaxe similaire pour la déclaration et l’initialisation des variables, mais ils diffèrent par leur portée et leur utilisation. Apprenons les différences entre ces 3 mots-clés.
mot-clévar
Le mot-clé ‘var
‘ a une syntaxe traditionnelle de définition de variable. En option, vous pouvez initialiser la variable avec une valeur. Si vous n’initialisez pas votre variable dans l’instruction var
, la valeur JavaScript undefined
lui est automatiquement attribuée.
1) Scope
2) Hoisting des déclarations var
Veuillez noter que les variables déclarées avec le mot-clé var
sont soumises au hoisting. Le hissage signifie que si nous déclarons une variable (déclarée mais non initialisée) à la fin d’une fonction, le runtime la hissera au sommet et nous n’aurons pas d’erreur si nous aurions utilisé cette variable avant d’être déclarée.
Lire la suite : Le hissage en JavaScript
3) Si vous n’utilisez pas le mot-clé ‘var’
En JavaScript, si vous n’utilisez pas le mot-clé var
pour la déclaration de variable (déclaration implicite), alors la variable sera créée dans la portée globale. Par exemple,
for(index=0; index< array.length; index++){//index is in global scope //code}
La boucle for ci-dessus créera une variable appelée index
dans la portée globale. Si quelqu’un d’autre se trouvait également utiliser une variable globale index
, alors vous venez d’écraser sa variable.
Pour éviter de donner à la variable une portée globale, vous devez utiliser le mot clé var
dans votre déclaration de variable.
let mot clé
let
est très similaire au mot clé var
– avec plus de restriction dans la portée.
const mot clé
-
const
déclare une variable à portée de bloc avec une valeur constante. C’est essentiellement une déclaration de variable avec le mot-clé ‘var
‘ où la valeur de la variable est constante et ne peut pas être modifiée. -
const
suit les mêmes principes de scoping que le mot-clélet
. - si vous savez que la variable que vous déclarez ne peut pas et ne doit pas être autorisée à être réaffectée, alors déclarez-la avec const, sinon utilisez le mot-clé let.
Syntaxe et utilisation
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.
.