Ambito di azione (scope)
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
Scope 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