Scop variabil JavaScript (cu exemple)

În acest tutorial, veți afla despre domeniul variabil în JavaScript cu ajutorul exemplelor.

Domeniul de aplicare se referă la disponibilitatea variabilelor și funcțiilor în anumite părți ale codului.

În JavaScript, o variabilă are două tipuri de domeniu:

  1. Domeniul de aplicare global
  2. Domeniul de aplicare local

Domeniul de aplicare global

O variabilă declarată în partea de sus a unui program sau în afara unei funcții este considerată o variabilă de domeniu global.

Să vedem un exemplu de variabilă de anvergură globală.

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

În programul de mai sus, variabila a este declarată în partea de sus a unui program și este o variabilă globală. Înseamnă că variabila apoate fi utilizată oriunde în program.

Valoarea unei variabile globale poate fi modificată în interiorul unei funcții. De exemplu,

 // 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

În programul de mai sus, variabila a este o variabilă globală. Valoarea lui este salut. Apoi, variabila a este accesată în interiorul unei funcții și valoarea se schimbă la 3.

Prin urmare, valoarea unui se modifică după modificarea acestuia în interiorul funcției.

Notă : Este o practică bună să evitați utilizarea variabilelor globale, deoarece valoarea unei variabile globale se poate schimba în diferite zone ale programului. Poate introduce rezultate necunoscute în program.

În JavaScript, o variabilă poate fi utilizată și fără a o declara. Dacă se utilizează o variabilă fără a o declara, acea variabilă devine automat o variabilă globală.

De exemplu,

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

În programul de mai sus, variabila a este o variabilă globală.

Dacă variabila a fost declarată folosind let a = "hello", programul ar arunca o eroare.

Notă : În JavaScript, există "strict mode";o variabilă care nu poate fi utilizată fără a o declara. Pentru a afla mai multe despre strict, vizitați JavaScript Strict.

Domeniul de aplicare local

O variabilă poate avea și un domeniu de aplicare local, adică poate fi accesată numai în cadrul unei funcții.

Exemplul 1: Variabilă de domeniu local

 // 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

Ieșire

 helloWorld Uncaught ReferenceError: b nu este definit

În programul de mai sus, variabila a este o variabilă globală, iar variabila b este o variabilă locală. Variabila b poate fi accesată numai în interiorul funcției salut. Prin urmare, atunci când încercăm să accesăm variabila b în afara funcției, apare o eroare.

let is Block Scoped

Cuvântul letcheie este blocat (variabila poate fi accesată numai în blocul imediat).

Exemplul 2: variabilă cu scop de bloc

 // 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();

Ieșire

 Hello World Hello World hello Uncaught ReferenceError: x nu este definit

În programul de mai sus, variabilă

  • a este o variabilă globală. Poate fi accesat oriunde în program.
  • b este o variabilă locală. Poate fi accesat numai în interiorul funcției greet.
  • c este o variabilă cu scop de bloc. Poate fi accesat numai în interiorul ifblocului de instrucțiuni.

Prin urmare, în programul de mai sus, primele două console.log()funcționează fără nicio problemă.

Cu toate acestea, încercăm să accesăm variabila cu scop de bloc c în afara blocului din a treia console.log(). Aceasta va arunca o eroare.

Notă : În JavaScript, vareste cuprins în funcție și în letbloc. Dacă încercați să utilizați în var c = 'hello';interiorul ifdeclarația în programul de mai sus, cu toate elementele de program, astfel cum c este tratat ca o variabilă locală.

Pentru a afla mai multe despre letversus var, accesați JavaScript let vs var.

Articole interesante...