JavaScript Variable Scope

Scope utal, hogy a rendelkezésre álló változók és funkciók bizonyos részein a kódot.

A JavaScriptben egy változónak kétféle hatóköre van:

  1. globális hatókör
  2. helyi hatókör

globális hatókör

EGY program tetején vagy egy függvényen kívül deklarált változó globális hatókör változónak tekinthető.

nézzünk egy példát egy globális hatókör változóra.

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

a fenti programban az a változó EGY program tetején van deklarálva, és egy globális változó. Ez azt jelenti, hogy a a változó bárhol használható a programban.

egy globális változó értéke megváltoztatható egy függvényen belül. Például:

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

a fenti programban az a változó globális változó. Az a értéke hello. Ezután az a változó egy függvényen belül érhető el, az érték pedig 3-ra változik.

ezért az érték a változások megváltoztatása után belül a függvény.

Megjegyzés: Jó gyakorlat a globális változók használatának elkerülése, mivel a globális változó értéke változhat a program különböző területein. Ismeretlen eredményeket vezethet be a programban.

A JavaScriptben egy változó is használható annak deklarálása nélkül. Ha egy változót deklarálás nélkül használnak, az a változó automatikusan globális változóvá válik.

például

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

a fenti programban az a változó globális változó.

Ha a változótlet a = "hello" használatával deklarálták, a program hibát okoz.

Megjegyzés: A JavaScript-ben van "strict mode";, amelyben egy változó nem használható annak deklarálása nélkül. Ha többet szeretne megtudni a szigorú, látogasson JavaScript szigorú.

helyi hatókör

egy változó helyi hatókörrel is rendelkezhet, azaz csak egy függvényen belül érhető el.

1.példa: helyi hatókör változó

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

kimenet

helloWorldUncaught ReferenceError: b is not defined

a fenti programban az a változó globális változó, a B változó pedig helyi változó. A B változó csak a greet függvényen belül érhető el. Ezért, amikor megpróbáljuk elérni a B változót a függvényen kívül, hiba lép fel.

Let is Block Scoped

The let kulcsszó block-scoped (változó csak a közvetlen blokkban érhető el).

2. példa: block-scoped Variable

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

Output

Hello WorldHello World helloUncaught ReferenceError: x is not defined

a fenti programban a

  • a változó globális változó. A program bárhol elérhető.
  • b egy helyi változó. Csak a greetfüggvényen belül érhető el.
  • c egy blokk-hatókörű változó. Csak a if utasításblokkon belül érhető el.

ezért a fenti programban az első két console.log() munka probléma nélkül.

azonban megpróbáljuk elérni a blokk-hatókörű C változót a blokkon kívül a harmadik console.log(). Ez hibát okoz.

Megjegyzés: JavaScript nyelven varis function scoped éslet is block-scoped. Ha megpróbálja használni a var c = 'hello'; – t a if nyilatkozatban a fenti programban, az egész program működik, mivel a C-t helyi változóként kezelik.

Ha többet szeretne megtudni a let versus var, látogasson el a JavaScript let vs var.

Related Posts

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük