Portée des variables

Portée des variables

22 février 2022

Comme vous l'avez remarqué dans l'article sur les variables, nous avons la possibilité de déclarer des variables de trois façons, avec var, let et const.

Une différence existe entre ces mots clés, au-delà du fait que l'une d'entre elle ne permet pas la modification de sa valeur const. Ici, il s'agit de la portée des variables ou autrement dit, du scope des variables.

Portée globale

Une variable déclarée en dehors d'une fonction sera globale, c'est-à-dire accessible partout dans le script, même dans une fonction JavaScript.

var toto = 'Hello';

function Demo() {
    console.log(toto);
}

Demo(); // Résultat : Hello
console.log(toto); // Résultat : Hello

La variable toto est bien opérationnel dans la fonction Demo().

Portée locale

À l'inverse, une variable déclarée au sein d'une fonction à une portée de bloc ou locale. Elle ne sera accessible qu'à l'intérieur de cette même fonction.

function Demo() {
    var toto = 'Hello';
    console.log(toto);
}

Demo(); // Résultat : Hello
console.log(toto); // ERREUR

Réaffecter une variable

Une variable globale peut être redéfinie dans une fonction sans aucun souci.

var toto = 'Welcome !';

function Demo() {
    toto = 'Hello';
    console.log(toto);
}

Demo(); // Résultat : Hello
console.log(toto); // Résultat : Hello

Conseil

À la déclaration d'une variable, privilégiez d'abord const si sa valeur n'a pas besoin d'être réaffectée. Ensuite let et enfin var, bien que var n'est plus utile aujourd'hui et let fais parfaitement l'affaire depuis son apparition en ECMAScript 2015.