Aussi appelé « portée ». Ce principe dans les langages de programmation, détermine la visibilité et la durée de vie des variables. Il en existe 3 : global scope, function scope et block scope.
Global scope
Toutes variables et constantes déclarées en dehors d’une fonction ou d’un bloc de code ont une portée dite globale. Elles sont donc accessibles depuis n’importe quelle partie du code :
let vehicule1 = "bmw"; const vehicule2 = "audi"; var vehicule3 = "ferrari"; function displayVehicule(){ console.log(vehicule1); console.log(vehicule2); console.log(vehicule3); } displayVehicule(); //bmw //audi //ferrari if(true){ console.log(vehicule1);//bmw console.log(vehicule2);//audi console.log(vehicule3);//ferrari }
Function scope
Toutes variables définies à l’intérieur d’une fonction, ne sont accessibles qu’à l’intérieur de celle-ci et non en dehors. Elles ont une portée dite locale :
function scopeFunction(){ let vehicule1 = "bmw"; const vehicule2 = "audi"; var vehicule3 = "ferrari"; } scopeFunction(); console.log(vehicule1); //vehicule1 is not defined console.log(vehicule2); //vehicule2 is not defined console.log(vehicule3); //vehicule3 is not defined
Block scope
Les mots-clés let
et const
permettent de spécifier que ces instructions auront une portée block scope, c’est-à-dire qu’elles ne sont accessibles qu’à l’intérieur du bloc dans lequel elles sont définies. Tout comme pour les fonctions, les variables ont ici une portée dite locale. Contrairement à l’instruction var
, qui elle, a une portée globale. C’est la raison pour laquelle, le var
n’est plus recommandé en raison de son scope global.
if(true){ let vehicule1 = "bmw"; const vehicule2 = "audi"; var vehicule3 = "ferrari"; console.log(vehicule1); //bmw console.log(vehicule2); //audi console.log(vehicule3); //ferrari } console.log(vehicule1); //vehicule1 is not defined console.log(vehicule2); //vehicule2 is not defined console.log(vehicule3); //ferrari