JavaScripti muutuja ulatus (koos näidetega)

Selles õpetuses saate näidete abil õppida JavaScripti muutuja ulatust.

Reguleerimisala viitab muutujate ja funktsioonide kättesaadavusele koodi teatud osades.

JavaScripti muutuja on kahte tüüpi ulatusega:

  1. Ülemaailmne ulatus
  2. Kohalik ulatus

Ülemaailmne ulatus

Programmi ülaosas või väljaspool funktsiooni deklareeritud muutujat peetakse globaalse ulatusega muutujaks.

Vaatame globaalse ulatusega muutuja näidet.

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

Ülaltoodud programmis deklareeritakse muutuja a programmi ülaosas ja see on globaalne muutuja. See tähendab, et muutujat asaab kasutada kõikjal programmis.

Globaalse muutuja väärtust saab funktsiooni sees muuta. Näiteks,

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

Ülaltoodud programmis on muutuja a globaalne muutuja. A väärtus on tere. Siis pöördutakse muutuja a poole funktsiooni sees ja väärtus muutub 3-ks.

Seega muutub muutus väärtus pärast funktsiooni sees muutmist.

Märkus : Hea tava on vältida globaalsete muutujate kasutamist, kuna globaalse muutuja väärtus võib programmi erinevates piirkondades muutuda. See võib programmis tutvustada tundmatuid tulemusi.

JavaScriptis saab muutujat kasutada ka seda deklareerimata. Kui muutujat kasutatakse seda deklareerimata, muutub see muutuja automaatselt globaalseks muutujaks.

Näiteks,

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

Ülaltoodud programmis on muutuja a globaalne muutuja.

Kui muutuja deklareeriti kasutades let a = "hello", viskaks programm vea.

Märkus . JavaScripti puhul pole "strict mode";muutujat võimalik seda deklareerimata kasutada. Rangete kohta lisateabe saamiseks külastage JavaScripti ranget.

Kohalik ulatus

Muutujal võib olla ka lokaalne ulatus, st sellele pääseb juurde ainult funktsiooni piires.

Näide 1: Kohaliku ulatuse muutuja

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

Väljund

 tereWorld püüdmata ReferenceError: b pole määratletud

Ülaltoodud programmis on muutuja a globaalne muutuja ja muutuja b on kohalik muutuja. Muutujale b pääseb juurde ainult funktsiooni tervitus sees. Seega, kui proovime muutujale b juurde pääseda väljaspool funktsiooni, tekib tõrge.

olgu Blokeeritud ulatus

letMärksõna on plokk-scoped (muutuja pääseb ainult vahetus plokk).

Näide 2: blokeeritud ulatusega muutuja

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

Väljund

 Tere maailm Tere maailm tere püüdmata ReferenceError: x pole määratletud

Ülaltoodud programmis muutuja

  • a on globaalne muutuja. Sellele pääseb juurde kõikjal programmis.
  • b on lokaalne muutuja. Sellele pääseb juurde ainult funktsiooni sees greet.
  • c on ploki ulatusega muutuja. Sellele pääseb juurde ainult iflauseplokis.

Seega console.log()töötavad ülaltoodud programmis kaks esimest probleemideta.

Kuid proovime pääseda ploki ulatusega muutujale c väljaspool kolmandat plokki console.log(). See viskab vea.

Märkus . JavaScripti varfunktsioon on ulatusega ja letblokeeritud. Kui proovite kasutada ülaltoodud programmi lause var c = 'hello';sees if, töötab kogu programm, kuna c-d käsitletakse kohaliku muutujana.

Et rohkem teada letversus varkülastage JavaScript lase vs var.

Huvitavad Artiklid...