JavaScript Global, Function and Block Scope | Forklart

JavaScript Global, Function and Block Scope | Forklart
JavaScript er ganske kjent i det nåværende programmeringsmarkedet, og det skyldes den enorme bruken. Å bli en JavaScript -utvikler er ikke bare en god jobb, men det er nå viktig å overleve i programmeringsmarkedet. JavaScript, akkurat som alle andre programmeringsspråk, avhenger av bruken av variabler. Og hver variabel har sitt eget omfang.

Ved programmering er omfanget definert som tilgjengeligheten til variabelen. Eller i mer tekniske termer, er det referansen til koden. Så hvordan kan vi skille mellom omfanget av variablene, og på hvilke faktorer som gjør dette "omfanget" avhenger? Vel, vi kommer til å dekke alt relatert til variabelt omfang i JavaScript.

Variabelt omfang i JavaScript

I JavaScript er det 3 typer variabelt omfang, nemlig:

  • Globalt omfang
  • Funksjonsomfang
  • Blokkomfang

Skjønt, det pleide bare å være to typer omfang før ES6, det globale omfanget, og det lokale omfanget. Men med ES6 ble lokalt omfang brutt ned i funksjonsomfang og blokkeringsomfang.

La oss starte med det globale omfanget først.

Globalt omfang

Variablene definert utenfor noen funksjon eller krøllete Braketter er kjent som globale variabler og har globalt omfang. Globalt omfang betyr at variablene kan nås fra noen del av programmet, enhver funksjon eller betinget tilstand kan få tilgang til den variabelen.

For eksempel

var name = "linuxhint";
funksjon printname ()
// Variabelen kan nås her inne
konsoll.Logg ("Denne opplæringen er med"+navn);

printName ();

Produksjon

Merk: Det er ikke en god praksis å bruke globale variabler når de ikke er nødvendig, da hver kodeblokk vil ha tilgang til disse variablene.

Lokalt omfang

Hvis du skulle definere noen variabler inne krøllparanteser Eller inne i en spesifikk funksjon, kalles disse variablene lokale variabler som de lokale variablene har et veldig begrenset omfang som kalles det lokale omfanget, men med utgivelsen av ES6 ble det lokale omfanget videre delt opp i to forskjellige omfang:

  • Funksjonsomfang
  • Blokkomfang.

Funksjonsomfang

Funksjonsomfanget er tilgjengeligheten til variablene som er definert i en funksjon, disse variablene kan ikke nås fra noen annen funksjon eller til og med utenfor funksjonen i hovedfilen.

For eksempel
Først opprettet vi en variabel inne i en funksjon og fikk tilgang til den inne i funksjonen:

funksjon abc ()
år = 2021;
// "År" -variabelen kan nås i denne funksjonen
konsoll.Logg ("Året er"+ år);

// "År" -variabelen kan ikke nås utenfor her
abc ();

Produksjon

Du kan se i utgangen at det fungerer helt greit som forventet.

Imidlertid, hvis vi prøver å få tilgang til denne variabelen utenfor funksjonen, får vi en feil:

funksjon abc ()
år = 2021;
// "År" -variabelen kan nås i denne funksjonen

// "År" -variabelen kan ikke nås utenfor her
konsoll.Logg ("Året er"+ år);
abc ();

Blokkomfang

Blokkomfang er også en sub-type lokalt omfang. Blokkomfanget kan defineres som omfanget av variablene inne i krøllparanteser . Nå kan disse krøllete parentesene være av løkker, eller betingede uttalelser, eller noe annet. Du har bare lov til å henvise til disse variablene innenfra krøllparanteser .

Se for deg en nestet situasjon:
En kodeblokk omsluttet av krøllparanteser som inneholder noen blokkvariabler.


La a = 10;
const b = 5;

Denne kodeblokken er i seg selv i en funksjon.

funksjon tillegg ()

La a = 10;
const b = 5;

Nå når vi prøver å få tilgang til variablene fra inne i funksjonen, men utenfor den spesifikke blokken.

funksjon tillegg ()

La a = 10;
const b = 5;

konsoll.logg (a + b);

Og for å få tilgang til denne funksjonen må vi påkalle den med:

addisjon();

Da blir vi møtt med en feil, selv om de er lokale variabler av samme funksjon.

Nøkkelordene la og const brukes til å definere blokkvariabler.

For eksempel
Følgende sjekker merkene oppnådd av en student og viser om studenten passerte eller mislyktes.

MarkSobtained = 60
if (marksobtained> = 45)
La status = "passert";
konsoll.Logg ("Emne Merknader:" + Status);

ellers
la status = "mislyktes";
konsoll.Logg ("Emne Merknader:" + Status);

Vi opprettet en blokkert lokal variabel vedlagt innenfor krøllparanteser Ved å bruke nøkkelordet la. Vi kan til og med erstatte dette med const. Utgangen er som:

Hvis du prøver å referere til den lokale variabelen utenfra funksjonen, vil du få en feil “Status (variabelnavn) er ikke definert”:

Merk: Å referere til “status"Variabel, vi ringer konsoll.Logg() funksjon fra utenfor de betingede parentesene;

Viktigheten av let og const nøkkelord mens du erklærer blokkvariabler

Hvis du erklærer en variabel inne krøllparanteser uten å bruke la og const nøkkelord da vil variabelen bli erklært som en "Global variabel”. Dette skyldes at nøkkelordene har sine omfang forhåndsdefinerte. For å lære mer om variabel erklærende nøkkelord. For å vise dette, kommer vi til å fjerne la nøkkelord fra ovennevnte kodebit og kjør koden.

Som du tydelig kan se, kunne vi få tilgang til denne variabelen utenfor krøllparanteser , Noe som betyr at variabelen uten "la" og "const" nøkkelord blir definert med et globalt omfang.

Konklusjon

Variabler er "den viktigste" delen av et programmeringsspråk. Variabler har forskjellige omfang avhengig av hvordan de er erklært. I JavaScript kan en variabel være en av tre forskjellige omfang, global, lokal og blokkering. Vi har lært hvordan disse variable omfangene fungerer i JavaScript ved å gå over flere eksempler, vi har til og med møtte feil når vi prøver å få tilgang til variabler med forskjellige omfang.