JavaScript-hissning (med exempel)

I den här handledningen lär du dig om JavaScript-lyftning med hjälp av exempel.

Hissning i JavaScript är ett beteende där en funktion eller en variabel kan användas före deklaration. Till exempel,

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

Ovanstående program fungerar och utdata kommer att vara odefinierad. Ovanstående program beter sig som

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

Eftersom variabeltestet endast deklareras och inte har något undefinedvärde tilldelas det värde.

Om du vill lära dig mer om variabler, besök JavaScript-variabler.

Anmärkning : Även om det verkar som att deklarationen har flyttat upp i programmet är det faktiska som händer att funktionen och de variabla deklarationerna läggs till minnet under kompileringsfasen.

Variabel lyftning

När det gäller variabler och konstanter, sökord varhissas och letoch consttillåter inte lyft.

Till exempel,

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

I exemplet ovan används variabel a innan deklareras. Och programmet fungerar och visar utdata 5. Programmet beter sig som:

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

Men i JavaScript lyfts inte initialiseringar. Till exempel,

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

Produktion

 odefinierad

Ovanstående program beter sig som:

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

Endast deklarationen flyttas till minnet i kompileringsfasen. Därför undefinedberor värdet på variabel a på att a skrivs ut utan att initialisera den.

När variabeln används inuti funktionen lyfts variabeln bara till toppen av funktionen. Till exempel,

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

Produktion

 hej Uncaught ReferenceError: b definieras inte

I exemplet ovan lyfts variabel b till funktionens överkant greetoch blir en lokal variabel. Därför är b endast tillgängligt inuti funktionen. b blir inte en global variabel.

För att lära dig mer om lokala och globala variabler, besök JavaScript Variable Scope.

Obs! Vid lyftning är variabeldeklarationen endast tillgänglig för omedelbar omfattning.

Om en variabel används med letnyckelordet lyfts inte variabeln upp. Till exempel,

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

Produktion

 Uncaught ReferenceError: Kan inte komma åt 'a' före initialisering

Under användning letmåste variabeln deklareras först.

Funktionslyftning

En funktion kan anropas innan den förklaras. Till exempel,

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

Produktion

 Hallå där

I programmet ovan greetkallas funktionen innan den deklareras och programmet visar utdata. Detta beror på hissning.

Men när en funktion används som ett uttryck inträffar ett fel eftersom endast deklarationer lyfts. Till exempel;

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

Produktion

 Uncaught ReferenceError: greet är inte definierad

Om vardet användes i ovanstående program skulle felet vara:

 Uncaught TypeError: greet är inte en funktion

Obs! I allmänhet utförs inte lyftning på andra programmeringsspråk som Python, C, C ++, Java.

Hissning kan orsaka oönskade resultat i ditt program. Och det är bäst att deklarera variabler och funktioner först innan du använder dem och undvika att lyfta.

När det gäller variabler är det bättre att använda letän var.

Intressanta artiklar...