Šajā apmācībā jūs uzzināsit par mainīgo darbības jomu JavaScript, izmantojot piemērus.
Darbības joma attiecas uz mainīgo un funkciju pieejamību noteiktās koda daļās.
JavaScript mainīgajam ir divu veidu darbības joma:
- Globālā darbības joma
- Vietējā darbības joma
Globālā darbības joma
Mainīgais, kas deklarēts programmas augšdaļā vai ārpus funkcijas, tiek uzskatīts par globālās darbības mainīgo.
Apskatīsim globāla mēroga mainīgā piemēru.
// program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello
Iepriekš minētajā programmā mainīgais a tiek deklarēts programmas augšdaļā un ir globāls mainīgais. Tas nozīmē, ka mainīgo a
var izmantot jebkur programmas vietā.
Globālā mainīgā vērtību var mainīt funkcijas iekšpusē. Piemēram,
// 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
Iepriekš minētajā programmā mainīgais a ir globālais mainīgais. A vērtība ir sveiki. Tad mainīgajam a piekļūst funkcijas iekšpusē, un vērtība mainās uz 3.
Tādējādi izmaiņu vērtība mainās pēc izmaiņām funkcijā.
Piezīme : Ir ieteicams izvairīties no globālo mainīgo izmantošanas, jo globālā mainīgā vērtība dažādās programmas jomās var mainīties. Tas var ieviest nezināmus rezultātus programmā.
JavaScript valodā mainīgo var izmantot arī to nedeklarējot. Ja mainīgais tiek izmantots to nedeklarējot, šis mainīgais automātiski kļūst par globālo mainīgo.
Piemēram,
function greet() ( a = "hello" ) greet(); console.log(a); // hello
Iepriekš minētajā programmā mainīgais a ir globālais mainīgais.
Ja mainīgais tiktu deklarēts, izmantojot let a = "hello"
, programma radītu kļūdu.
Piezīme : JavaScript valodā "strict mode";
mainīgo nevar izmantot, nedeklarējot to. Lai uzzinātu vairāk par stingrību, apmeklējiet JavaScript stingru.
Vietējā darbības joma
Mainīgajam var būt arī lokāla darbības joma, ti, tam var piekļūt tikai funkcijas ietvaros.
1. piemērs: mainīgs vietējais darbības joma
// 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
Rezultāts
helloWorld Uncaught ReferenceError: b nav definēts
Iepriekš minētajā programmā mainīgais a ir globālais mainīgais, bet mainīgais b ir lokālais mainīgais. Mainīgajam b var piekļūt tikai funkcijas sveiciena iekšpusē. Tādējādi, mēģinot piekļūt mainīgajam b ārpus funkcijas, rodas kļūda.
ļaujiet bloķēt darbības jomu
let
Atslēgvārds ir bloks-tvērumu (mainīgais var piekļūt tikai tiešā blokā).
2. piemērs: mainīgs ar bloku diapazonu
// 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();
Rezultāts
Sveiki, sveiki, sveiki, sveiki, sveiki, nepieķerts ReferenceError: x nav definēts
Iepriekš minētajā programmā mainīgais
- a ir globāls mainīgais. Tam var piekļūt jebkurā programmas vietā.
- b ir lokāls mainīgais. Tam var piekļūt tikai funkcijas iekšpusē
greet
. - c ir ar bloku saistīts mainīgais. Tam var piekļūt tikai
if
paziņojumu bloka iekšpusē .
Tādējādi iepriekšminētajā programmā pirmie divi console.log()
darbojas bez problēmām.
Tomēr mēs mēģinām piekļūt mainīgajam c ar bloku, kas atrodas ārpus trešā bloka console.log()
. Tas radīs kļūdu.
Piezīme : JavaScript valodā var
funkcija ir aptverta un let
ir bloķēta. Ja jūs mēģināt izmantot var c = 'hello';
iekšpusē if
pārskatā minēto programmu, viss programmas darbiem, jo c tiek uzskatīta par vietējo mainīgais.
Lai uzzinātu vairāk par let
versus var
, apmeklējiet JavaScript let vs var.