Portées

Frontend SELF FR
Niveau 35 , Leçon 4
Disponible

5.1 Portée globale

Les portées (scopes) déterminent la disponibilité des variables et des fonctions dans différentes parties d'un programme. En JavaScript, il existe trois principaux types de portées : globale, locale et par bloc. Comprendre ces portées est important pour gérer efficacement les données et éviter les erreurs dans le code.

La portée globale inclut toutes les variables et fonctions déclarées en dehors de toute fonction ou bloc de code. Ces variables et fonctions sont accessibles de n'importe où dans le code.

Exemple 1 : Déclaration de variables globales

JavaScript
    
      var globalVar = 'I am a global variable';

      function showGlobalVar() {
        console.log(globalVar); // Accès à la variable globale
      }
      showGlobalVar(); // Affichera : I am a global variable

      console.log(globalVar); // Accès à la variable globale
    
  

Exemple 2 : Fonctions globales

Dans cet exemple, la variable globalVar et la fonction globalFunction() sont déclarées dans la portée globale et sont accessibles de n'importe où dans le code.

JavaScript
    
      function globalFunction() {
        return 'I am a global function';
      }

      console.log(globalFunction()); // Affichera : I am a global function
    
  

5.2 Portée locale

La portée locale inclut des variables et des fonctions déclarées à l'intérieur d'une fonction. Ces variables et fonctions sont accessibles uniquement à l'intérieur de cette fonction et ne sont pas accessibles en dehors.

Exemple 3 : Déclaration de variables locales

Dans cet exemple, la variable localVar est déclarée à l'intérieur de la fonction localScopeExample() et n'est pas accessible en dehors de cette fonction :

JavaScript
    
      function localScopeExample() {
        var localVar = 'I am a local variable';
        console.log(localVar); // Accès à la variable locale
      }

      localScopeExample(); // Affichera : I am a local variable

      console.log(localVar); // Erreur : localVar is not defined
    
  

Exemple 4 : Fonctions locales

Dans cet exemple, la fonction innerFunction() est déclarée à l'intérieur de la fonction outerFunction() et n'est pas accessible en dehors de outerFunction() :

JavaScript
    
      function outerFunction() {
        function innerFunction() {
          return 'I am a local function';
        }
        console.log(innerFunction()); // Accès à la fonction locale
      }

      outerFunction(); // Affichera : I am a local function

      console.log(innerFunction()); // Erreur : innerFunction is not defined
    
  

5.3 Portée par bloc

La portée par bloc inclut des variables déclarées avec let et const à l'intérieur d'un bloc de code, délimité par des accolades {}. Ces variables sont accessibles uniquement à l'intérieur de ce bloc et ne sont pas accessibles en dehors.

Exemple 5 : Déclaration de variables avec let

Dans cet exemple, la variable blockVar est déclarée à l'intérieur d'un bloc if et n'est pas accessible en dehors :

JavaScript
    
      if (true) {
        let blockVar = 'I am a block-scoped variable';
        console.log(blockVar); // Accès à la variable de bloc
      }

      console.log(blockVar); // Erreur : blockVar is not defined
    
  

Exemple 6 : Déclaration de variables avec const

Dans cet exemple, la variable i est déclarée à l'intérieur d'un bloc for et n'est pas accessible en dehors :

JavaScript
    
      for (const i = 0; i < 3; i++) {
        console.log(i); // Accès à la variable de bloc
      }

      console.log(i); // Erreur : i is not defined
    
  

Particularités de la portée par bloc

Exemple 7 : Blocs imbriqués

Dans cet exemple, la variable innerVar est accessible uniquement à l'intérieur du bloc interne, tandis que la variable outerVar est accessible à la fois dans le bloc externe et le bloc interne :

JavaScript
    
      if (true) {
        let outerVar = 'I am in the outer block';

        if (true) {
          let innerVar = 'I am in the inner block';

          console.log(outerVar); // Accès à la variable du bloc externe
          console.log(innerVar); // Accès à la variable du bloc interne
        }

        console.log(outerVar); // Accès à la variable du bloc externe
        console.log(innerVar); // Erreur : innerVar is not defined
      }
    
  

5.4 Interaction des différentes portées

Exemple 8 : Interaction des portées globale et locale

Dans cet exemple, la fonction scopeExample() a accès à la variable globale globalVar et à sa variable locale localVar :

JavaScript
    
      var globalVar = 'I am a global variable';

      function scopeExample() {
        var localVar = 'I am a local variable';

        console.log(globalVar); // Accès à la variable globale
        console.log(localVar);  // Accès à la variable locale
      }

      scopeExample(); // Affichera : I am a global variable
                      //  I am a local variable

      console.log(globalVar); // Accès à la variable globale
      console.log(localVar);  // Erreur : localVar is not defined
    
  

Exemple 9 : Portées avec une fonction fléchée

Dans cet exemple, la fonction fléchée arrowFunction() a accès à la variable globale globalVar et à sa variable locale localVar :

JavaScript
    
      let globalVar = 'I am a global variable';

      const arrowFunction = () => {
        let localVar = 'I am a local variable in arrow function';

        console.log(globalVar); // Accès à la variable globale
        console.log(localVar);  // Accès à la variable locale
      };

      arrowFunction(); // Affichera : I am a global variable
                       // I am a local variable in arrow function

      console.log(globalVar); // Accès à la variable globale
      console.log(localVar);  // Erreur : localVar is not defined
    
  
1
Опрос
Fonctions,  35 уровень,  4 лекция
недоступен
Fonctions
Fonctions
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION