Portée Variable JavaScript

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 globale
  2. Portée locale

Portée globale

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 a peut ê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 variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();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 accessible à l’intérieur d’une fonction et la valeur passe à 3.

Par conséquent, la valeur de a change après l’avoir modifiée à l’intérieur de la fonction.

Note: 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. Il 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 déclencherait une erreur.

Note: En JavaScript, il existe "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 qu’au sein d’une fonction.

Exemple 1: Variable de portée locale

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

Sortie

helloWorldUncaught ReferenceError: b is not defined

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 greet. 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 mot clé let est à 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 variablelet 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();

Sortie

Hello WorldHello World helloUncaught ReferenceError: x is not defined

Dans le programme ci-dessus, la 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 bloc d’instructions if.

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 c à portée de bloc en dehors du bloc dans le troisième console.log(). Cela va générer une erreur.

Remarque: En JavaScript, var est la portée de la fonction et let est la portée du bloc. Si vous essayez d’utiliser var c = 'hello'; dans l’instruction if dans le programme ci-dessus, l’ensemble du programme fonctionne, car c est traité comme une variable locale.

Pour en savoir plus sur let par rapport à var, visitez JavaScript let vs var.

Related Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *