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 definedBlock 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
