JavaScript-hejsning (med eksempler)

Indholdsfortegnelse

I denne vejledning lærer du om JavaScript-hejsning ved hjælp af eksempler.

Hejsning i JavaScript er en opførsel, hvor en funktion eller en variabel kan bruges før erklæring. For eksempel,

 // using test before declaring console.log(test); // undefined var test;

Ovenstående program fungerer, og output bliver udefineret. Ovenstående program opfører sig som

 // using test before declaring var test; console.log(test); // undefined

Da den variable test kun er deklareret og ikke har nogen værdi, undefinedtildeles den værdi.

Hvis du vil lære mere om variabler, skal du besøge JavaScript-variabler.

Bemærk : Selvom det ser ud til, at erklæringen er flyttet op i programmet under hejsning, er det faktiske, der sker, at funktionen og de variable erklæringer føjes til hukommelsen under kompileringsfasen.

Variabel hejsning

Med hensyn til variabler og konstanter varhejses nøgleordet letog consttillader ikke hejsning.

For eksempel,

 // program to display value a = 5; console.log(a); var a; // 5

I ovenstående eksempel anvendes variabel a, før den erklæres. Og programmet fungerer og viser output 5. Programmet opfører sig som:

 // program to display value var a; a = 5; console.log(a); // 5

Imidlertid hejses initialiseringer ikke i JavaScript. For eksempel,

 // program to display value console.log(a); var a = 5;

Produktion

 udefineret

Ovenstående program opfører sig som:

 var a; console.log(a); a = 5;

Kun erklæringen flyttes til hukommelsen i kompileringsfasen. Derfor er værdien af ​​variabel a undefinedfordi a udskrives uden at initialisere den.

Når variablen bruges inde i funktionen, hejses variablen kun til toppen af ​​funktionen. For eksempel,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Produktion

 hej Ikke fanget ReferenceError: b er ikke defineret

I ovenstående eksempel hejses variabel b til toppen af ​​funktionen greetog bliver en lokal variabel. Derfor er b kun tilgængelig inden for funktionen. b bliver ikke en global variabel.

For at lære mere om lokale og globale variabler, besøg JavaScript Variable Scope.

Bemærk : Under hejsning er variabeldeklarationen kun tilgængelig for det umiddelbare omfang.

Hvis en variabel bruges med letnøgleordet, hejses denne variabel ikke. For eksempel,

 // program to display value a = 5; console.log(a); let a; // error

Produktion

 Ikke fanget ReferenceError: Kan ikke få adgang til 'a' før initialisering

Under brug letskal variablen først erklæres.

Funktionsløft

En funktion kan kaldes op, før den erklæres. For eksempel,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Produktion

 Hej

I ovenstående program greetkaldes funktionen, inden den erklæres, og programmet viser output. Dette skyldes hejsning.

Men når en funktion bruges som et udtryk , opstår der en fejl, fordi kun erklæringer hejses. For eksempel;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Produktion

 Ikke fanget referencefejl: hilsen er ikke defineret

Hvis den varblev brugt i ovenstående program, ville fejlen være:

 Ufanget TypeError: hilsen er ikke en funktion

Bemærk : Generelt udføres hejsning ikke på andre programmeringssprog som Python, C, C ++, Java.

Hejsning kan medføre uønskede resultater i dit program. Og det er bedst at erklære variabler og funktioner først, før du bruger dem og undgå hejsning.

I tilfælde af variabler er det bedre at bruge letend var.

Interessante artikler...