La portée des variables

Résumé Support

Nous n'allons rien apprendre de nouveau aujourd'hui mais nous allons faire le point sur une notion importante : La portée des variables (scope en anglais).

Les variables ont une portée limitée et n'existent que dans le bloc où elles sont définies

if (true) { let a = 3 } console.log(a) // ERREUR, a is not defined

En revanche une variable peut être lue dans les blocs enfants du bloc courant

let a = 3 if (true) { console.log(a) // 3 a = 5 // On modifie la variable du "scope" parent } console.log(a) // 5

On peut aussi avoir plusieurs variables de même nom avec des portées différentes

let a = 3 if (true) { let a = 5 // On crée une nouvelle variable pour le "scope" courant console.log(a) // 5 } console.log(a) // 3

Même si cela fonctionne, on essaiera d'éviter de réutiliser le même nom de variable pour éviter les confusions.