JavaScript változó hatóköre (példákkal)

Ebben az oktatóanyagban példák segítségével megismerheti a JavaScript változó hatókörét.

A hatókör a változók és függvények rendelkezésre állására utal a kód bizonyos részeiben.

A JavaScript-ben egy változó kétféle hatókörrel rendelkezik:

  1. Globális hatókör
  2. Helyi hatókör

Globális hatókör

A program tetején vagy a függvényen kívül deklarált változó globális hatókörű változónak számít.

Lássunk 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ó deklarálva van a program tetején, és globális változó. Ez azt jelenti, hogy a változó abárhol használható a programban.

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

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

A fenti programban az a változó globális változó. Az a értéke hello. Ezután az a változóhoz hozzáférünk egy függvényen belül, és az érték 3-ra változik .

Ezért a változás értéke megváltozik, miután megváltoztatta a függvényen belül.

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

A JavaScript-ben egy változó deklarálás nélkül is használható. Ha egy változót deklarálás nélkül használunk, akkor 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ó használatával lett deklarálva let a = "hello", akkor a program hibát dob.

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

Helyi hatókör

A változónak lokális hatóköre is lehet, 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 variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error

Kimenet

 helloWorld el nem fogott ReferenceError: b nincs meghatározva

A fenti programban az a változó globális változó, a b változó pedig helyi változó. A b változó csak az üdvözlő funkció belsejében érhető el. Ezért amikor megpróbálunk a b változóhoz hozzáférni a függvényen kívül, akkor hiba lép fel.

legyen a blokk hatóköre

A letkulcsszó blokk hatókörű (a változó csak a közvetlen blokkban érhető el).

2. példa: blokk hatókörű változó

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

Kimenet

 Hello World Hello World hello Uncaught ReferenceError: x nincs meghatározva

A fenti programban változó

  • az a globális változó. A program bárhol elérhető.
  • b egy lokális változó. Csak a funkción belül érhető el greet.
  • c egy blokk hatókörű változó. Csak az ifutasításblokkon belül érhető el.

Ezért a fenti programban az első két console.log()kérdés nélkül működik.

Megpróbáljuk azonban elérni a c blokk hatókörű változót a harmadik blokkon kívül console.log(). Ez hibát fog dobni.

Megjegyzés : A JavaScript-ben varfüggvény hatóköre és letblokk hatóköre van. Ha a fenti program utasításán var c = 'hello';belül próbálkozik if, az egész program működik, mivel a c-t helyi változóként kezeljük.

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

érdekes cikkek...