JavaScript-muuttujan soveltamisala

soveltamisala tarkoittaa muuttujien ja funktioiden saatavuutta koodin tietyissä osissa.

Javascriptissä muuttujalla on kahdenlaisia soveltamisaloja:

  1. globaali soveltamisala
  2. paikallinen soveltamisala

globaali soveltamisala

ohjelman yläosassa tai funktion ulkopuolella ilmoitettu muuttuja katsotaan yleiseksi laajuusmuuttujaksi.

katsotaan esimerkki globaalista scope-muuttujasta.

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

edellä mainitussa ohjelmassa muuttuja a ilmoitetaan ohjelman yläreunassa ja se on globaali muuttuja. Se tarkoittaa, että muuttujaa a voidaan käyttää missä tahansa ohjelmassa.

kokonaismuuttujan arvo voidaan muuttaa funktion sisällä. Esimerkiksi

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

edellä mainitussa ohjelmassa muuttuja a on globaali muuttuja. A: n arvo on hello. Sitten muuttuja a pääsee funktion sisään ja arvo muuttuu 3: ksi.

näin ollen A: n arvo muuttuu muutettuaan sitä funktion sisällä.

Huomautus: On hyvä käytäntö välttää globaalien muuttujien käyttöä, koska globaalin muuttujan arvo voi muuttua ohjelman eri osa-alueilla. Se voi esitellä tuntemattomia tuloksia ohjelmassa.

Javascriptissä muuttujaa voidaan käyttää myös julistamatta sitä. Jos muuttujaa käytetään ilmoittamatta sitä, siitä tulee automaattisesti kokonaismuuttuja.

esimerkiksi

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

edellä mainitussa ohjelmassa muuttuja a on globaali muuttuja.

jos muuttuja olisi ilmoitettu käyttämällä let a = "hello", ohjelma heittäisi virheen.

Huomautus: Javascriptissä on "strict mode";, jossa muuttujaa ei voi käyttää julistamatta sitä. Lisätietoja tiukka, käy JavaScript tiukka.

Local Scope

muuttujalla voi olla myös paikallinen ulottuvuus, eli sitä voi käyttää vain funktion sisällä.

Esimerkki 1: Local Scope-muuttuja

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

Output

helloWorldUncaught ReferenceError: b is not defined

edellä mainitussa ohjelmassa muuttuja a on globaali muuttuja ja muuttuja b on paikallinen muuttuja. Muuttujaa b voidaan käyttää vain funktion greet sisällä. Näin ollen, kun yritämme käyttää muuttuja b ulkopuolella funktio, virhe tapahtuu.

let on lohkokakkosena

let avainsana on lohkokakkosena (muuttujaa voi käyttää vain välittömässä lohkossa).

Esimerkki 2: lohkomuuttuja

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

Lähtö

Hello WorldHello World helloUncaught ReferenceError: x is not defined

edellä mainitussa ohjelmassa muuttuja

  • A on globaali muuttuja. Sitä voi käyttää missä tahansa ohjelmassa.
  • b on paikallinen muuttuja. Sitä voi käyttää vain funktion greetsisällä.
  • c on lohkomainen muuttuja. Sitä voi käyttää vain if statement Blockin sisällä.

näin ollen edellä mainitussa ohjelmassa kaksi ensimmäistä console.log() toimivat ongelmitta.

yritämme kuitenkin päästä lohkon ulkopuoliseen muuttujaan c kolmannella console.log(). Tämä heittää virhe.

Huom: Javascriptissä var on funktio scoped ja let on block scoped. Jos yrität käyttää var c = 'hello';if lausetta yllä olevassa ohjelmassa, koko ohjelma toimii, koska c käsitellään paikallisena muuttujana.

lisätietoja let versus var, käy JavaScript Let vs var.

Related Posts

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *