Portée de la variable JavaScript (avec exemples)

Dans ce didacticiel, vous découvrirez la portée des variables en JavaScript à l'aide d'exemples.

La portée fait référence à la disponibilité de variables et de fonctions dans certaines parties du code.

En JavaScript, une variable a deux types de portée:

  1. Portée mondiale
  2. Portée locale

Portée mondiale

Une variable déclarée en haut d'un programme ou en dehors d'une fonction est considérée comme une variable de portée globale.

Voyons un exemple de variable de portée globale.

 // program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello

Dans le programme ci-dessus, la variable a est déclarée en haut d'un programme et est une variable globale. Cela signifie que la variable apeut être utilisée n'importe où dans le programme.

La valeur d'une variable globale peut être modifiée à l'intérieur d'une fonction. Par exemple,

 // program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3

Dans le programme ci-dessus, la variable a est une variable globale. La valeur de a est bonjour. Ensuite, la variable a est accédée à l'intérieur d'une fonction et la valeur passe à 3.

Par conséquent, la valeur d'un change après l'avoir modifiée dans la fonction.

Remarque : Il est recommandé d'éviter d'utiliser des variables globales car la valeur d'une variable globale peut changer dans différents domaines du programme. Cela peut introduire des résultats inconnus dans le programme.

En JavaScript, une variable peut également être utilisée sans la déclarer. Si une variable est utilisée sans la déclarer, cette variable devient automatiquement une variable globale.

Par exemple,

 function greet() ( a = "hello" ) greet(); console.log(a); // hello

Dans le programme ci-dessus, la variable a est une variable globale.

Si la variable était déclarée en utilisant let a = "hello", le programme lèverait une erreur.

Remarque : En JavaScript, il y a "strict mode";dans lequel une variable ne peut pas être utilisée sans la déclarer. Pour en savoir plus sur strict, visitez JavaScript Strict.

Portée locale

Une variable peut également avoir une portée locale, c'est-à-dire qu'elle n'est accessible que dans une fonction.

Exemple 1: variable d'étendue locale

 // program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error

Production

 helloWorld Uncaught ReferenceError: b n'est pas défini

Dans le programme ci-dessus, la variable a est une variable globale et la variable b est une variable locale. La variable b n'est accessible qu'à l'intérieur de la fonction saluer. Par conséquent, lorsque nous essayons d'accéder à la variable b en dehors de la fonction, une erreur se produit.

let est à portée de bloc

Le letmot-clé a une portée de bloc (la variable n'est accessible que dans le bloc immédiat).

Exemple 2: variable à portée de bloc

 // program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();

Production

 Hello World Hello World hello Uncaught ReferenceError: x n'est pas défini

Dans le programme ci-dessus, variable

  • a est une variable globale. Il est accessible n'importe où dans le programme.
  • b est une variable locale. Il n'est accessible qu'à l'intérieur de la fonction greet.
  • c est une variable à portée de bloc. Il n'est accessible qu'à l'intérieur du ifbloc d'instructions.

Par conséquent, dans le programme ci-dessus, les deux premiers console.log()fonctionnent sans aucun problème.

Cependant, nous essayons d'accéder à la variable de portée de bloc c en dehors du bloc dans le troisième console.log(). Cela lancera une erreur.

Remarque : dans JavaScript, la varportée est fonction et la portée des letblocs. Si vous essayez d'utiliser var c = 'hello';à l'intérieur de l' ifinstruction dans le programme ci-dessus, tout le programme fonctionne, car c est traité comme une variable locale.

Pour en savoir plus sur letversus var, visitez JavaScript let vs var.

Articles intéressants...