In questo tutorial imparerai a sollevare JavaScript con l'aiuto di esempi.
Il sollevamento in JavaScript è un comportamento in cui una funzione o una variabile può essere utilizzata prima della dichiarazione. Per esempio,
// using test before declaring console.log(test); // undefined var test;
Il programma sopra funziona e l'output non sarà definito. Il programma sopra si comporta come
// using test before declaring var test; console.log(test); // undefined
Poiché la variabile test è solo dichiarata e non ha valore, undefined
ad essa viene assegnato valore.
Se vuoi saperne di più sulle variabili, visita Variabili JavaScript.
Nota : durante il sollevamento, sebbene sembri che la dichiarazione sia stata spostata verso l'alto nel programma, la cosa reale che accade è che le dichiarazioni di funzioni e variabili vengono aggiunte alla memoria durante la fase di compilazione.
Sollevamento variabile
In termini di variabili e costanti, parola chiave var
viene issata e let
e const
non consente di sollevamento.
Per esempio,
// program to display value a = 5; console.log(a); var a; // 5
Nell'esempio precedente, la variabile a viene utilizzata prima di dichiararla. E il programma funziona e visualizza l'output 5. Il programma si comporta come:
// program to display value var a; a = 5; console.log(a); // 5
Tuttavia in JavaScript, le inizializzazioni non vengono sollevate. Per esempio,
// program to display value console.log(a); var a = 5;
Produzione
non definito
Il programma sopra si comporta come:
var a; console.log(a); a = 5;
Solo la dichiarazione viene spostata in memoria in fase di compilazione. Quindi, il valore della variabile a è undefined
perché a viene stampato senza inizializzarlo.
Inoltre, quando la variabile viene utilizzata all'interno della funzione, la variabile viene sollevata solo all'inizio della funzione. Per esempio,
// program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);
Produzione
ciao Uncaught ReferenceError: b non è definito
Nell'esempio precedente, la variabile b viene sollevata all'inizio della funzione greet
e diventa una variabile locale. Quindi b è accessibile solo all'interno della funzione. b non diventa una variabile globale.
Per ulteriori informazioni sulle variabili locali e globali, visita Ambito delle variabili JavaScript.
Nota : durante il sollevamento, la dichiarazione della variabile è accessibile solo all'ambito immediato.
Se una variabile viene utilizzata con la let
parola chiave, tale variabile non viene sollevata. Per esempio,
// program to display value a = 5; console.log(a); let a; // error
Produzione
Errore di riferimento non rilevato: impossibile accedere a "a" prima dell'inizializzazione
Durante l'utilizzo let
, la variabile deve essere dichiarata prima.
Funzione di sollevamento
Una funzione può essere chiamata prima di dichiararla. Per esempio,
// program to print the text greet(); function greet() ( console.log('Hi, there.'); )
Produzione
Ciao
Nel programma sopra, la funzione greet
viene chiamata prima di dichiararla e il programma mostra l'output. Ciò è dovuto al sollevamento.
Tuttavia, quando una funzione viene utilizzata come espressione , si verifica un errore perché vengono visualizzate solo le dichiarazioni. Per esempio;
// program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )
Produzione
Errore di riferimento non rilevato: il saluto non è definito
Se è var
stato utilizzato nel programma sopra, l'errore sarebbe:
Errore di tipo non rilevato: Greet non è una funzione
Nota : in genere, il sollevamento non viene eseguito in altri linguaggi di programmazione come Python, C, C ++, Java.
Il sollevamento può causare risultati indesiderati nel programma. Ed è meglio dichiarare variabili e funzioni prima di usarle ed evitare di sollevarle.
Nel caso delle variabili, è meglio usare let
di var
.