JavaScript-heising (med eksempler)

I denne opplæringen lærer du om JavaScript-heising ved hjelp av eksempler.

Heising i JavaScript er en oppførsel der en funksjon eller en variabel kan brukes før erklæring. For eksempel,

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

Ovennevnte program fungerer, og utdataene vil være udefinert. Ovennevnte program oppfører seg som

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

Siden variabeltesten kun er deklarert og ikke har noen verdi, undefinedtildeles den verdien.

Hvis du vil lære mer om variabler, kan du gå til JavaScript-variabler.

Merk : Selv om det ser ut til at erklæringen har flyttet seg opp i programmet, er det faktiske at funksjonen og variabeldeklarasjonene legges til minnet under kompileringsfasen.

Variabel heising

Når det gjelder variabler og konstanter, varheises nøkkelord letog consttillater ikke heising.

For eksempel,

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

I eksemplet ovenfor brukes variabel a før den erklæres. Og programmet fungerer og viser utdata 5. Programmet oppfører seg som:

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

Imidlertid blir initialiseringer ikke heist i JavaScript. For eksempel,

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

Produksjon

 udefinert

Ovennevnte program oppfører seg som:

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

Bare erklæringen blir flyttet til minnet i kompileringsfasen. Derfor er verdien av variabel a undefinedfordi a skrives ut uten å initialisere den.

Når variabelen brukes inne i funksjonen, heises variabelen bare til toppen av funksjonen. For eksempel,

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

Produksjon

 hei Ikke fanget ReferenceError: b er ikke definert

I eksemplet ovenfor heises variabel b til toppen av funksjonen greetog blir en lokal variabel. Derfor er b bare tilgjengelig i funksjonen. b blir ikke en global variabel.

For å lære mer om lokale og globale variabler, besøk JavaScript Variable Scope.

Merk : Under heising er variabeldeklarasjonen bare tilgjengelig for det umiddelbare omfanget.

Hvis en variabel brukes med letnøkkelordet, heises ikke denne variabelen. For eksempel,

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

Produksjon

 Ikke fanget referansefeil: Kan ikke få tilgang til 'a' før initialisering

Under bruk letmå variabelen deklareres først.

Heising av funksjon

En funksjon kan kalles før du erklærer den. For eksempel,

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

Produksjon

 Hei der

I det ovennevnte programmet greetkalles funksjonen før den erklæres, og programmet viser utdataene. Dette skyldes heising.

Imidlertid, når en funksjon brukes som et uttrykk , oppstår en feil fordi bare erklæringer er heist. For eksempel;

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

Produksjon

 Ikke fanget referansefeil: hilsen er ikke definert

Hvis det varble brukt i programmet ovenfor, ville feilen være:

 Unc fanget TypeError: hilsen er ikke en funksjon

Merk : Generelt utføres ikke heising på andre programmeringsspråk som Python, C, C ++, Java.

Heising kan føre til uønskede resultater i programmet ditt. Og det er best å erklære variabler og funksjoner først før du bruker dem, og unngå heising.

Når det gjelder variabler, er det bedre å bruke letenn var.

Interessante artikler...