JavaScript-variabelt omfang (med eksempler)

I denne veiledningen vil du lære om variabelt omfang i JavaScript ved hjelp av eksempler.

Omfang refererer til tilgjengeligheten av variabler og funksjoner i visse deler av koden.

I JavaScript har en variabel to typer omfang:

  1. Globalt omfang
  2. Lokalt omfang

Globalt omfang

En variabel som er erklært øverst i et program eller utenfor en funksjon, regnes som en global omfangsvariabel.

La oss se et eksempel på en global omfangsvariabel.

 // program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello

I det ovennevnte programmet er variabel a erklært øverst i et program og er en global variabel. Det betyr at variabelen akan brukes hvor som helst i programmet.

Verdien til en global variabel kan endres i en funksjon. For eksempel,

 // program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3

I programmet ovenfor er variabel a en global variabel. Verdien av a er hei. Deretter får du tilgang til variabelen a i en funksjon, og verdien endres til 3.

Derfor endres verdien av en etter endring i funksjonen.

Merk : Det er en god praksis å unngå å bruke globale variabler fordi verdien av en global variabel kan endres i forskjellige områder i programmet. Det kan introdusere ukjente resultater i programmet.

I JavaScript kan en variabel også brukes uten å erklære den. Hvis en variabel brukes uten å deklarere den, blir den variabelen automatisk en global variabel.

For eksempel,

 function greet() ( a = "hello" ) greet(); console.log(a); // hello

I programmet ovenfor er variabel a en global variabel.

Hvis variabelen ble deklarert ved hjelp av let a = "hello", ville programmet kaste en feil.

Merk : I JavaScript er det "strict mode";der en variabel ikke kan brukes uten å erklære den. For å lære mer om streng, besøk JavaScript Strict.

Lokalt omfang

En variabel kan også ha et lokalt omfang, dvs. at den bare kan nås innenfor en funksjon.

Eksempel 1: Variabel for lokalt omfang

 // program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error

Produksjon

 helloWorld Uncaught ReferenceError: b er ikke definert

I det ovennevnte programmet er variabel a en global variabel og variabel b er en lokal variabel. Variabelen b er kun tilgjengelig i funksjonshilsen. Derfor, når vi prøver å få tilgang til variabel b utenfor funksjonen, oppstår det en feil.

la oss blokkere Scoped

Den letordet er blokkomfang (variabelt kan nås bare i umiddelbar blokk).

Eksempel 2: Variabel med blokkfelt

 // program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();

Produksjon

 Hello World Hello World hallo Ikke fanget ReferenceError: x er ikke definert

I programmet ovenfor, variabelt

  • a er en global variabel. Den er tilgjengelig hvor som helst i programmet.
  • b er en lokal variabel. Den er kun tilgjengelig i funksjonen greet.
  • c er en variabel med blokkomfang. Den kan bare nås inne i ifsetningsblokken.

Derfor console.log()fungerer de to første i det ovennevnte programmet uten problemer.

Imidlertid prøver vi å få tilgang til den variabel c-varianten c utenfor blokken i den tredje console.log(). Dette vil føre til en feil.

Merk : I JavaScript varer funksjonen omfang og leter blokk-omfanget. Hvis du prøver å bruke var c = 'hello';inne i ifutsagnet i programmet ovenfor, fungerer hele programmet, da c blir behandlet som en lokal variabel.

For å lære mer om letversus var, besøk JavaScript let vs var.

Interessante artikler...