Î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:
- Domeniul de aplicare global
- 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 a
poate 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 let
cheie 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
if
blocului 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, var
este cuprins în funcție și în let
bloc. Dacă încercați să utilizați în var c = 'hello';
interiorul if
declaraț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 let
versus var
, accesați JavaScript let vs var.