JavaScript mainīgā tvērums (ar piemēriem)

Š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:

  1. Globālā darbības joma
  2. 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 avar 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

letAtslē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 ifpaziņ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ā varfunkcija ir aptverta un letir bloķēta. Ja jūs mēģināt izmantot var c = 'hello';iekšpusē ifpārskatā minēto programmu, viss programmas darbiem, jo c tiek uzskatīta par vietējo mainīgais.

Lai uzzinātu vairāk par letversus var, apmeklējiet JavaScript let vs var.

Interesanti raksti...