Omfang og heising av variabler i JavaScript | Forklart med eksempler

Omfang og heising av variabler i JavaScript | Forklart med eksempler
I et JavaScript -program definerer omfanget av en variabel hvor langt en variabel kan nås mens du heiser i JavaScript er et fenomen som du kan få tilgang til variablene selv før initialiseringen deres.

Variabler Omfang i JavaScript

Før vi dykker ned i omfanget av variabelen først må vi forstå hva som er en variabel i JavaScript og hvordan du lager en variabel.

En variabel fungerer som en beholder som inneholder noen data. Disse variablene kan opprettes ved hjelp av tre forskjellige nøkkelord som "var", "la" og "const".

I JavaScript har en variabel to slags omfang, og vi vil diskutere hver av dem med noen eksempler.

Blokkomfang i JavaScript

Tidligere støtter ikke JavaScript blokkomfang, men etter utgivelsen av ES6 gjør det det. ES6 introduserer et par nye nøkkelord som Let og Const, disse nøkkelordene tilbyr blokkomfang i JavaScript.

Blokkomfang i JavaScript er representert med krøllete seler “”, som bestemmer enhver variabel som er erklært innenfor blokkomfanget ikke kan nås utenfor den. Variablene som er initialisert i blokken er kjent som lokale variabler.

Nå skal vi forstå arbeidet med variabler, erklært i blokkomfanget.

Variabel erklært med "var" nøkkelord støtter ikke blokkomfang, det betyr at vi også kan få tilgang til variabelen fra utenfor blokken. Tenk på eksemplet nedenfor der variabelen er deklarert med "var" nøkkelordet, og observer hvordan den fungerer:

hvis sant)

var a = 100;
konsoll.Logg ("Variabel inne i blokkomfanget:", A);

Vi opprettet en variabel inne i blokken ved å bruke nøkkelordet “var” og tilordne den verdien '100'. Når vi får tilgang til den variabelen inne i blokken, vil den vise følgende utgang:

Forbedre eksemplet ovenfor litt mer og få tilgang til 'A' -variabelen utenfor blokken:

hvis sant)

var a = 100;
konsoll.Logg ("Variabel inne i blokkomfanget:", A);

konsoll.Logg ("Variabel utenfor blokken:", A);

Nå observer utgangen:

Utgangen verifiserer at nøkkelordet “var” ikke kan ha blokkomfang.

Lag nå variablene med nøkkelordet "Let" og "Const", og prøv å få tilgang til dem utenfra blokkomfanget:

hvis sant)

La A = 100;
const b = 150;
konsoll.Logg ("La det inne i blokken omfang:", a);
konsoll.Logg ("Const inne i blokkenomfanget:", b);

konsoll.logg ("La utenfor blokken omfang:", a);
konsoll.logg ("Const utenfor blokkenomfanget:", b);

Få tilgang til begge variablene fra innsiden så vel som utenfor blokken:

Utgangen vil bekrefte at disse variablene er tilgjengelige i blokkomfanget, men når vi prøver å få tilgang til dem utenfor blokkeringsomfanget, oppstår en feil "UNHAWARED REFERANSEERROR”:

Globalt omfang i JavaScript

Variabler som kan være tilgjengelige hvor som helst utenfra eller inne i funksjonen/blokken er kjent som globale omfangsvariabler. Uansett er de opprettet utenfor funksjonen/blokken eller i funksjonen eller blokken I.e. variabel opprettet inne i blokken med 'var' nøkkelord kan være tilgjengelig hvor som helst i JavaScript -koden.

I JavaScript, hvis en variabel ikke er deklarert riktig, vil den som standard bli opprettet i det globale omfanget.

Tenk på følgende eksempel og observer hvordan en global variabel fungerer:

var a = 100;
La B = 120;
const c = 250;
hvis sant)

konsoll.Logg ("Global variabel:", a);
konsoll.log ("Global variabel:", b);
konsoll.Logg ("Global variabel:", C);

I dette eksemplet erklærte vi variablene globalt og får tilgang til dem i IF-uttalelsesblokken:

Utgangen verifiserer at vi kan få tilgang til variablene hvor som helst i programmet som er definert globalt:

Heis i JavaScript:

Heising refererer til et fenomen som flytter de variable erklæringer til toppen.

Her må vi forstå forskjellen mellom variabel erklæring og variabel initialisering, for eksempel “var a”, er en variabel erklæring mens “A = 10” er variabel initialisering. Nå vil vi ta et eksempel for å forstå hvordan vi skriver koden og hvordan JavaScript tolker den koden:

var a = 10;
dokument.Skriv en);
var b = 20;

JavaScript vil lese det som:

var a;
var b;
a = 10;
dokument.Skriv en);
B = 20;

JavaScript flytter erklæringsdelen øverst mens initialiseringsdelen forblir på sin posisjon.

Så langt i alle eksemplene opprettet vi en variabel og tildelte en viss verdi til den, og så får vi tilgang til variabelen på slutten. Hva om vi prøver å få tilgang til en hvilken som helst variabel før initialiseringen/erklæringen. Vel, i så fall viser JavaScript en udefinert verdi som den gjorde i følgende eksempel:

konsoll.logg ("tilgang før erklæring:", a);
var a = 45;

I dette eksemplet prøver vi å skrive ut verdien av variabelen “A”, før erklæringen, deretter i neste uttalelse opprettet vi variabelen og tildeler den en verdi. Ved vellykket utførelse vil vi få følgende utdata:

Dette skjer fordi, selv før utførelsen av denne koden, tildelte JavaScript en udefinert verdi til "var a”Så lyder det“konsoll.Logg (a)" og så "a = 45”, Derfor viser det udefinert i stedet for 45.

Mens du hopper over nøkkelordet "var" betyr at vi ikke erklærer en variabel i stedet, initialiserer vi bare en variabel. I dette tilfellet, hvis vi prøver å få tilgang til en variabel før dens erklæring, vil vi møte en refferensror som vi gjorde i følgende eksempel:

konsoll.logg ("tilgang før erklæring:", a);
a = 45;

Vi prøver å skrive ut verdien av “A” på konsollen før dens erklæring, og deretter tildeler vi i neste uttalelse en verdi til variabelen 'A' uten å bruke nøkkelordet “var”:

Vi får følgende utdata:

Konklusjon

I JavaScript bestemmer omfanget av variabelen hvor du kan få tilgang til en variabel i koden mens du heiser variablene refererer til konseptet med å påkalle variablene erklæringer til toppen av programmet. Denne artikkelen gir eksemplene på stedet for å forstå begrepet omfang og heising av variabel i JavaScript.