JavaScript Variable Scope

Scope 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 deklarert øverst i et program eller utenfor en funksjon betraktes 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 programmet ovenfor er variabel a deklarert øverst i et program og er en global variabel. Det betyr at variabelen a kan brukes hvor som helst i programmet.

verdien av en global variabel kan endres inne i en funksjon. For eksempel

// program to show the change in global variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();console.log(a); // 3

i programmet ovenfor er variabel a en global variabel. Verdien av a er hei. Deretter åpnes variabelen a inne i en funksjon og verdien endres til 3.

derfor endres verdien av a etter at den er endret inne i funksjonen.

Merk: Det er en god praksis å unngå å bruke globale variabler fordi verdien av en global variabel kan endres på ulike 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 å erklære 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 strenge, besøk JavaScript Strict.

Lokalt Omfang

en variabel kan også ha et lokalt omfang, dvs.det kan bare nås i en funksjon.

Eksempel 1: Lokal Omfangsvariabel

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

Utgang

helloWorldUncaught ReferenceError: b is not defined

i programmet ovenfor er variabel a en global variabel og variabel b er en lokal variabel. Variabelen b kan bare nås innenfor funksjonen greet. Derfor, når vi prøver å få tilgang til variabel b utenfor funksjonen, oppstår en feil.

la Er Blokkomfang

let søkeord er blokkomfang (variabel kan bare nås i umiddelbar blokk).

Eksempel 2: Blokkvariabel

// program showing block-scoped concept// global variablelet 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();

Utgang

Hello WorldHello World helloUncaught ReferenceError: x is not defined

i programmet ovenfor er variabel

  • a en global variabel. Det kan nås hvor som helst i programmet.
  • b er en lokal variabel. Den kan bare nås i funksjonen greet.
  • c er en variabel med blokkomfang. Den kan bare nås iif – setningsblokken.

derfor, i det ovennevnte programmet, fungerer de to første console.log() uten noe problem.

vi prøver imidlertid å få tilgang til den blokkerte variabelen c utenfor blokken i den tredje console.log(). Dette vil kaste en feil.

Merk: I JavaScript er var funksjonsomfang og let blokkomfang. Hvis du prøver å brukevar c = 'hello'; inne iif – setningen i programmet ovenfor, fungerer hele programmet, da c behandles som en lokal variabel.

for å lære mer om let versus var, besøk JavaScript la vs var.

Related Posts

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *