CodeGym /Corsi /Frontend SELF IT /Ambiti di visibilità

Ambiti di visibilità

Frontend SELF IT
Livello 35 , Lezione 4
Disponibile

5.1 Ambito globale

Ambiti di visibilità (scopes) determinano la disponibilità di variabili e funzioni in diverse parti del programma. In JavaScript esistono tre tipi principali di ambiti di visibilità: globale, locale e di blocco. Comprendere questi ambiti è importante per gestire efficacemente i dati e prevenire errori nel codice.

Ambito globale include tutte le variabili e funzioni dichiarate al di fuori di qualsiasi funzione o blocco di codice. Queste variabili e funzioni sono accessibili da qualsiasi parte del codice.

Esempio 1: Dichiarazione di variabili globali

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

      function showGlobalVar() {
        console.log(globalVar); // Accesso alla variabile globale
      }
      showGlobalVar(); // Mostrerà: I am a global variable

      console.log(globalVar); // Accesso alla variabile globale
    
  

Esempio 2: Funzioni globali

In questo esempio la variabile globalVar e la funzione globalFunction() sono dichiarate nell'ambito globale e sono accessibili da qualsiasi parte del codice.

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

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

5.2 Ambito locale

Ambito locale include variabili e funzioni dichiarate all'interno di una funzione. Queste variabili e funzioni sono accessibili solo all'interno di quella funzione e non sono disponibili al di fuori di essa.

Esempio 3: Dichiarazione di variabili locali

In questo esempio, la variabile localVar è dichiarata all'interno della funzione localScopeExample() e non è accessibile al di fuori di essa:

JavaScript
    
      function localScopeExample() {
        var localVar = 'I am a local variable';
        console.log(localVar); // Accesso alla variabile locale
      }

      localScopeExample(); // Mostrerà: I am a local variable

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

Esempio 4: Funzioni locali

In questo esempio, la funzione innerFunction() è dichiarata all'interno della funzione outerFunction() e non è disponibile al di fuori di outerFunction():

JavaScript
    
      function outerFunction() {
        function innerFunction() {
          return 'I am a local function';
        }
        console.log(innerFunction()); // Accesso alla funzione locale
      }

      outerFunction(); // Mostrerà: I am a local function

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

5.3 Ambito di blocco

L'ambito di blocco include variabili dichiarate con let e const all'interno di un blocco di codice, delimitato da parentesi graffe {}. Queste variabili sono accessibili solo all'interno di quel blocco e non sono disponibili al di fuori di esso.

Esempio 5: Dichiarazione di variabili con let

In questo esempio, la variabile blockVar è dichiarata all'interno di un blocco if e non è accessibile al di fuori di esso:

JavaScript
    
      if (true) {
        let blockVar = 'I am a block-scoped variable';
        console.log(blockVar); // Accesso alla variabile di blocco
      }

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

Esempio 6: Dichiarazione di variabili con const

In questo esempio, la variabile i è dichiarata all'interno di un blocco for e non è accessibile al di fuori di esso:

JavaScript
    
      for (const i = 0; i < 3; i++) {
        console.log(i); // Accesso alla variabile di blocco
      }

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

Caratteristiche dell'ambito di blocco

Esempio 7: Blocchi annidati

In questo esempio, la variabile innerVar è accessibile solo all'interno del blocco interno, mentre la variabile outerVar è accessibile sia nel blocco esterno che in quello interno:

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

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

          console.log(outerVar); // Accesso alla variabile del blocco esterno
          console.log(innerVar); // Accesso alla variabile del blocco interno
        }

        console.log(outerVar); // Accesso alla variabile del blocco esterno
        console.log(innerVar); // Errore: innerVar is not defined
      }
    
  

5.4 Interazione tra diversi ambiti di visibilità

Esempio 8: Interazione tra ambiti globale e locale

In questo esempio, la funzione scopeExample() ha accesso alla variabile globale globalVar e alla sua variabile locale localVar:

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

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

        console.log(globalVar); // Accesso alla variabile globale
        console.log(localVar);  // Accesso alla variabile locale
      }

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

      console.log(globalVar); // Accesso alla variabile globale
      console.log(localVar);  // Errore: localVar is not defined
    
  

Esempio 9: Ambiti di visibilità con una funzione arrow

In questo esempio, la funzione arrow arrowFunction() ha accesso alla variabile globale globalVar e alla sua variabile 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); // Accesso alla variabile globale
        console.log(localVar);  // Accesso alla variabile locale
      };

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

      console.log(globalVar); // Accesso alla variabile globale
      console.log(localVar);  // Errore: localVar is not defined
    
  
1
Compito
Frontend SELF IT, livello 35, lezione 4
Bloccato
Variabile globale
Variabile globale
1
Compito
Frontend SELF IT, livello 35, lezione 4
Bloccato
Ambito di Blocco
Ambito di Blocco
1
Sondaggio/quiz
Funzioni, livello 35, lezione 4
Non disponibile
Funzioni
Funzioni
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION