JAVASCRIPT SCOPE
Lo scope determina l’accessibilità (visibilità) delle variabili.
JavaScript ha 3 tipi di scope:
- Block scope
- Function scope
- Global scope
BLOCK SCOPE
Prima di ES6 (2015), JavaScript aveva solo Global Scope e Function Scope. ES6 ha introdotto due nuove importanti parole chiave JavaScript: let e const. Queste due parole chiave forniscono il Block Scope in JavaScript. Non è possibile accedere alle variabili dichiarate all’interno di un blocco { } dall’esterno del blocco:
{
let x = 2;
}
// x can NOT be used here
Le variabili dichiarate con la parola chiave var NON possono avere un block scope. È possibile accedere alle variabili dichiarate all’interno di un blocco { } dall’esterno del blocco con la keyword var.
{
var x = 2;
}
// x CAN be used here
LOCAL SCOPE
Le variabili dichiarate all’interno di una funzione JavaScript diventano LOCALI per la funzione.
// code here can NOT use carName
function myFunction() {
let carName = “Volvo”;
// code here CAN use carName
}
// code here can NOT use carName
Le variabili locali hanno un function scope e sono accessibili solo dall’interno della funzione. Poiché tali variabili vengono riconosciute solo all’interno delle loro funzioni, le variabili con lo stesso nome possono essere utilizzate in funzioni diverse. Le variabili locali vengono create all’avvio di una funzione ed eliminate al completamento della funzione.
FUNCTION SCOPE
JavaScript ha un function scope: ogni funzione crea un nuovo scope (ambito di visibilità). Le variabili definite all’interno di una funzione non sono accessibili (visibili) dall’esterno della funzione. Le variabili dichiarate con var, let e const sono abbastanza simili quando dichiarate all’interno di una funzione. Hanno tutte un function scope:
function myFunction() {
var carName = “Volvo”; // Function Scope
}
function myFunction() {
let carName = “Volvo”; // Function Scope
}
function myFunction() {
const carName = “Volvo”; // Function Scope
}
VARIABILI JAVASCRIPT GLOBALI
Una variabile dichiarata al di fuori di una funzione, diventa GLOBALE.
let carName = “Volvo”;
// code here can use carName
function myFunction() {
// code here can also use carName
}
Una variabile globale ha un Global Scope: Tutti gli script e le funzioni di una pagina Web possono accedervi.
GLOBAL SCOPE
Le variabili dichiarate Globalmente (al di fuori di qualsiasi funzione) hanno Ambito Globale (Global Scope). È possibile accedere alle variabili globali da qualsiasi punto di un programma JavaScript. Le variabili dichiarate con var, let e const sono abbastanza simili quando dichiarate all’esterno di un blocco. Hanno tutte un ambito globale:
var x = 2; // Global scope
let x = 2; // Global scope
const x = 2; // Global scope
In JavaScript, anche oggetti e funzioni sono variabili. L’ambito (scope) determina l’accessibilità di variabili, oggetti e funzioni da diverse parti del codice.
GLOBALI AUTOMATICAMENTE
Se assegni un valore a una variabile che non è stata dichiarata, diventerà automaticamente una variabile GLOBALE. Questo esempio di codice dichiara una variabile globale carName, anche se il valore è assegnato all’interno di una funzione.
myFunction();
// code here can use carName
function myFunction() {
carName = “Volvo”;
}
STRICT MODE
Tutti i browser moderni supportano l’esecuzione di JavaScript in “Modalità strict”. Imparerai di più su come utilizzare la modalità strict in un post successivo di questo tutorial. In “Modalità strict”, le variabili non dichiarate non sono automaticamente globali.
VARIABILI GLOBALI HTML
Con JavaScript, l’ambito globale è l’ambiente JavaScript. In HTML, l’ambito globale è l’oggetto window. Le variabili globali definite con la parola chiave var appartengono all’oggetto window. Le variabili globali definite con la parola chiave let non appartengono all’oggetto window.
WARNING:
NON creare variabili globali a meno che non sia indispensabile.
CICLO DI VITA DELLE VARIABILI JAVASCRIPT
La durata di una variabile JavaScript inizia quando viene dichiarata. Le variabili di funzione (locali) vengono eliminate al completamento della funzione. In un browser Web, le variabili globali vengono eliminate quando si chiude la finestra (o scheda) del browser. Gli argomenti delle funzioni (parametri) funzionano come variabili locali all’interno delle funzioni.
Scrivi un commento