Ambito di azione

Scope, tradotto ambito in italiano, è un concetto che si riferisce a dove si può accedere ai valori e alle funzioni.

Tra i vari campi di applicazione vi sono:

  • Ambito globale (un valore/funzione nell'ambito globale può essere utilizzato in qualsiasi punto dell'intero programma).
  • Ambito del file o del modulo (il valore/funzione è accessibile solo dall'interno del file).
  • Ambito di funzione (visibile solo all'interno della funzione).
  • Ambito di applicazione del blocco di codice.
function miaFunzione() {
   var a = "Prova";
   // Qui il codice può usare a
}

// Qui il codice non può usare a

Ambito const e let

const e let sono variabili con scoping a blocchi, il che significa che sono accessibili solo nel loro blocco di codice o nei loro blocchi annidati. Nel blocco di codice dato, provando a stampare messaggioStato usando il metodo console.log() si otterrà un ReferenceError. È accessibile solo all'interno di quel blocco di codice.

const loggato = true;

if (loggato == true) {
   const messaggioStato = 'Utente loggato';
};

console.log(messaggioStato);
ReferenceError: messaggioStato is not defined

Variabili globali

Le variabili JavaScript che sono dichiarate al di fuori di blocchi di codice o funzioni possono esistere nell'ambito globale, il che significa che sono accessibili in tutto il programma. Le variabili dichiarate al di fuori degli scope di blocchi o funzioni più piccoli sono accessibili all'interno di questi scope più piccoli.

// Variabile dichiarata globalmente
const colore = 'magenta';

function stampaColore() {
   console.log(colore);
};

stampaColore();
magenta