JavaScript variable Scope

Scope 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. domeniu Global
  2. domeniu Local

domeniu 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ă globală a domeniului de aplicare.

// 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 variablelet a = "hello";function greet() { a = 3;}// before the function callconsole.log(a);//after the function callgreet();console.log(a); // 3

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

prin urmare, valoarea unei modificări după schimbarea acesteia în interiorul funcției.

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

în JavaScript, o variabilă poate fi utilizată și fără a o declara. Dacă o variabilă este utilizată 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ă folosindlet a = "hello", programul ar arunca o eroare.

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

domeniu Local

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

Exemplul 1: variabila domeniu Local

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

ieșire

helloWorldUncaught ReferenceError: b is not defined

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

let este Block Scoped

let cuvântul cheie este block-scoped (variabila poate fi accesată numai în blocul imediat).

Exemplul 2: variabila cu scop bloc

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

ieșire

Hello WorldHello World helloUncaught ReferenceError: x is not defined

în programul de mai sus, variabila

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

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 C cu scop bloc în afara blocului în al treilea console.log(). Acest lucru va arunca o eroare.

notă: în JavaScript, var este funcția scoped și let este bloc-scoped. Dacă încercați să utilizațivar c = 'hello'; în interiorulif declarație în programul de mai sus, întregul program funcționează, ca c este tratat ca o variabilă locală.

pentru a afla mai multe desprelet versusvar, vizitați JavaScript let vs var.

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *