Ambito JavaScript
L'ambito determina l'accessibilità (visibilità) delle variabili.
JavaScript ha 3 tipi di ambito:
- Blocca l'ambito
- Ambito della funzione
- Ambito globale
Ambito di blocco
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 Block Scope in JavaScript.
Non è possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco:
Esempio
{
let x = 2;
}
// x can NOT be used here
Le variabili dichiarate con la var
parola chiave NON possono avere un ambito di blocco.
È possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco.
Esempio
{
var x = 2;
}
// x CAN be used here
Ambito locale
Le variabili dichiarate all'interno di una funzione JavaScript diventano LOCALI per la funzione.
Esempio
// 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 Scopo della funzione :
Sono accessibili solo dall'interno della funzione.
Poiché le variabili locali 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.
Ambito della funzione
JavaScript ha un ambito di funzione: ogni funzione crea un nuovo ambito.
Le variabili definite all'interno di una funzione non sono accessibili (visibili) dall'esterno della funzione.
Le variabili dichiarate con
e var
sono abbastanza simili quando dichiarate all'interno di una funzione.let
const
Hanno tutti Scopo della funzione :
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 GLOBAL .
Esempio
let carName = "Volvo";
// code here can use carName
function myFunction() {
// code here can also use carName
}
Una variabile globale ha Ambito Globale :
Tutti gli script e le funzioni di una pagina Web possono accedervi.
Ambito globale
Le variabili dichiarate Globalmente (al di fuori di qualsiasi funzione) hanno Global Scope .
È possibile accedere alle variabili globali da qualsiasi punto di un programma JavaScript.
Le variabili dichiarate con
e var
sono abbastanza simili quando dichiarate all'esterno di un blocco.let
const
Hanno tutti una portata globale :
var x = 2;
// Global scope
let x = 2; //
Global scope
const x = 2; //
Global scope
Variabili JavaScript
In JavaScript, anche oggetti e funzioni sono variabili.
L'ambito determina l'accessibilità di variabili, oggetti e funzioni da diverse parti del codice.
Automaticamente globale
Se assegni un valore a una variabile che non è stata dichiarata, diventerà automaticamente una variabile GLOBALE .
Questo esempio di codice dichiarerà una variabile globale carName
, anche se il valore è assegnato all'interno di una funzione.
Esempio
myFunction();
// code here can use carName
function myFunction() {
carName = "Volvo";
}
Modalità rigorosa
Tutti i browser moderni supportano l'esecuzione di JavaScript in "Modalità rigorosa".
Imparerai di più su come utilizzare la modalità rigorosa in un capitolo successivo di questo tutorial.
In "Modalità rigorosa", le variabili non dichiarate non sono automaticamente globali.
Variabili globali in HTML
Con JavaScript, l'ambito globale è l'ambiente JavaScript.
In HTML, l'ambito globale è l'oggetto finestra.
Le variabili globali definite con la var
parola chiave appartengono all'oggetto finestra:
Esempio
var carName = "Volvo";
// code here
can use window.carName
Le variabili globali definite con la let
parola chiave non appartengono all'oggetto finestra:
Esempio
let carName = "Volvo";
// code here can not use window.carName
Avvertimento
NON creare variabili globali a meno che tu non lo intenda.
Le tue variabili globali (o funzioni) possono sovrascrivere le variabili (o funzioni) della finestra.
Qualsiasi funzione, incluso l'oggetto finestra, può sovrascrivere le variabili e le funzioni globali.
La durata 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.
Argomenti di funzione
Gli argomenti delle funzioni (parametri) funzionano come variabili locali all'interno delle funzioni.