Sollevamento JavaScript (con esempi)

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, undefinedad 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 varviene issata e lete constnon 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 è undefinedperché 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 greete 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 letparola 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 greetviene 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 è varstato 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 letdi var.

Articoli interessanti...