Déclaration de variable
Pour fonctionner, un programme doit garder en mémoire des valeurs : elles sont stockées dans des variables. Il existe 3 façons de déclarer une variable : avec le mot-clé var
, et, depuis ES6, avec les mots-clés let
et const
.
Pour faire simple, on va toujours utiliser const
. Si vous voulez vraiment connaître les différences :
Une variable déclarée avec le mot-clé var
aura pour scope la fonction, et sera accessible avant sa déclaration dans le code (mais sa valeur avant initialisation sera forcément la valeur undefined
).
Une variable déclarée avec les mots-clés let
ou const
aura pour scope le bloc d'instruction dans lequel elle est déclarée : un ensemble d'instructions séparées par des accolades {
et }
. Ces variables ne seront pas accessibles avant leur déclaration, contrairement à celle déclarée avec var
.
La différence entre let
et const
est qu'une variable déclarée avec const
ne peut pas être réassignée :
console.log(first) // undefined
let first
console.log(first) // undefined
first = null
console.log(first) // null
console.log(firstBis) // undefined
var firstBis = 'bis'
console.log(firstBis) // 'bis
// Illustration de la TDZ
// console.log(second) // Provoquerait une erreur ReferenceError : on est ici dans la TDZ de second!
let second
console.log(second) // undefined
second = 'two'
console.log(second) // 'two'
second = 2
console.log(second) // 2
// console.log(third) // Provoquerait une erreur ReferenceError : on est ici dans la TDZ de third !
const third = 3
console.log(second) // '3'
third = 4 // TypeError : on ne peut pas réassigner une variable déclarée avec const
third++ // TypeError : l'incrémentation correspond aussi à une réassignation