Heis i JavaScript | Forklart

Heis i JavaScript | Forklart
Når JavaScript -motoren utfører et program, oppretter det en ny utførelseskontekst som heter Global utførelseskontekst" eller "Standard kontekst”. Du vet kanskje at JavaScript er et enkelttrådet språk, så det tillater bare å opprette en global utførelseskontekst for å utføre koden.

I JavaScript er det To faser av Global utførelseskontekst:

  • Opprettelse
  • Henrettelse

I opprettelsesfasen blir erklæringene relatert til variabler og funksjoner flyttet til toppen av omfanget, kjent som "Heise“. Det regnes også som standardoppførsel til JavaScript.

Dette innlegget forklarer heising i JavaScript sammen med de passende eksemplene. Så la oss starte!

Variabel heising i JavaScript

JavaScript -motoren flytter automatisk variable erklæringer til programmets eller skriptets topp. Denne prosessen er kjent som “Variabel heising”.

Eksempel: Variabel heising i JavaScript

I det undergitte eksemplet har vi erklært en variabel som heter “Antall”Og initialiserte verdien”4“Men før det refererer vi til“Antall”Variabel gjennom“konsoll.Logg()”Metode:

konsoll.logg (nummer);
var nummer = 4;

I dette tilfellet "Antall”Variabel erklæring blir automatisk flyttet til skriptets topp. Det er grunnen til at utførelsen av den oppgitte ikke har opplevd noen feil:

Når det gjelder syntaks, ser koden i utførelsesfasen slik ut:

var nummer;
konsoll.logg (nummer);
nummer = 5;

Så hva som skjedde i bakgrunnen? JavaScript -motoren tildelte minne til “Antall”Variabel i den globale utførelseskontekstopprettingsfasen og setter deretter verdiene som“udefinert”.

La nøkkelord heise i JavaScript

I JavaScript er variablene definert med "la”Søkeord heises på skriptets topp, men motoren initialiserer dem ikke. Kodeblokken vet om den definerte variabelen; Det kan imidlertid ikke brukes før vi erklærer den spesifiserte variabelen.

Eksempel: La nøkkelord heise i JavaScript

Vi vil erklære det samme “Antall”Variabel ved hjelp av“la”Nøkkelord:

nummer = 6;
La nummer = 5;

Den gitte koden vil generere en “ReferenceError" at "Antall”Variabel er ikke definert:

Det møttes “ReferenceError”Betyr også at“Antall”Variabel er plassert i heapminnet, men den er ikke initialisert ennå.

Vi vil prøve å få tilgang til en variabel “alfa”Det eksisterer ikke i minnet. I dette tilfellet vil utdataene vise en annen “ReferenceError" at "alfa”Variabel er ikke definert:

konsoll.logg (alfa);
La nummer = 5;

Produksjon

La oss nå sjekke ut hvordan JavaScript -motoren håndterer funksjon heise.

Funksjon heise i JavaScript

Funksjonsdeklarasjonene blir også flyttet til toppen av skriptet av JavaScript -motoren. I likhet med variabler tilbyr JavaScript funksjonaliteten til å heise funksjonerklæringer.

Eksempel: Funksjon heise i JavaScript

I det følgende eksemplet "Legg til()”Funksjonen påberopes før du legger til definisjonen:

La A = 45,
B = 23;
La sum = legge til (a, b);
konsoll.logg (sum);
funksjon add (x, y)
returner x + y;

Programmet sender imidlertid fremdeles verdien som returneres av "Legg til()”Funksjon:

Når det gitte eksemplet blir utført, tildeler JavaScript -motoren minne til erklæringen om “Legg til()”Funksjon. Mer spesifikt et JavaScript “Gjenstand”Er opprettet i henhold til typen“Legg til()”Funksjonstype og legger også til en“Funksjonsreferanse”Kalt”Legg til,”Som peker mot det opprettede objektet.

Så teknisk sett, i JavaScript-motoren, blir det ovennevnte eksemplet utført som følger:

funksjon add (x, y)
returner x + y;

La A = 45,
B = 23;
La sum = legge til (a, b);
konsoll.logg (sum);

Produksjon

Begge de gitte programmene genererte samme utgang. Nå vil vi prøve å heise Funksjonsuttrykk I JavaScript.

Funksjonsuttrykk som heiser i JavaScript

I en JavaScript -funksjonsuttrykk, En variabel initialiseres med en funksjonsverdi. Som et resultat er den navngitte variabelen bare heist, ikke dens funksjon.

Eksempel: Funksjonsuttrykk som heiser i JavaScript

Vi vil endre våre vanlige “Legg til()”Funksjon til en“Funksjonsuttrykk”:

var add = funksjon add (x, y)
returner x + y;

Denne gangen en “Typeerror”Vises på konsollvinduet og informerer om at“Legg til”Er ikke en funksjon:

Vi har møtt ovennevnte “Typeerror”Fordi JavaScript -motoren plasserte“Legg til" som en "variabel”I minnet, ikke som en funksjon.

Det var all kritisk informasjon relatert til Heise i JavaScript. Du kan videre utforske dette emnet i henhold til dine preferanser.

Konklusjon

Heise i JavaScript støttes for variabler og funksjoner erklæringer. I opprettelsesfasen av den globale utførelseskonteksten blir erklæringen relatert til variabler og funksjoner flyttet til toppen av omfanget. På denne måten blir et sted i minnet tildelt dem begge, slik at vi kan bruke variabler og funksjoner før erklæring. Denne oppskrivningen forklarte heising i JavaScript sammen med passende eksempler.