Scoping ar var, let un const /JavaScript

 

Varbūt atceries, ka scope ir saistīts ar koda pieejamību. Tas nosaka, kura koda daļa ir pieejama dažādās programmas daļās. Šajā rakstā jūs varēsiet iepazīties ar scope sīkāk un uzzināsiet par diviem cita veida scope un to sadarbību ar atslēgvārdiem var, let un const.

var num1 = 10;
function score() {
    var num2 = 20;
console.log(num2); //20
}

Varbūt atceries, ka visu kodu ārpus funkcijām sauc par globālo scope, bet visu kodu funkcijas iekšienē tiek sauc par lokālo scope. Lokālais scope nosaka, ka mainīgie pieejami tikai funkcijā, kur tie ir deklarēti.

local global scope

ES5 JavaScript versijā tikai funkcijas var radīt lokālo scope. ES6 JavaScript versija ieviesa jaunu scope veidu, ko sauc par bloka scope. Bloka scope nosaka, ka mainīgie, kas deklarēti koda blokā, ir pieejami tikai tajā pašā blokā. Visā citā kodā ārpus koda bloka tiem nevar piekļūt. Bloka scope veido, deklarējot mainīgos, izmantojot let vai const.

Citiem vārdiem, ja mainīgos veido ar let vai const, tie tiek nekavējoties “scoupoti” ar koda bloku, kur tie tika izveidoti. Šo mainīgo scope ir iekļauts figūriekavās. Piemēram, varat deklarēt divus atsevišķus mainīgos ar vienādu nosaukumu. Ja viens ir deklarēts figūriekavās, bet otrs nav, tiem var piekļūt tikai savā scope – tajā kurā tie atrodās.

Pirms ES6 vienīgais veids, kā deklarēt mainīgo JavaScript valodā, bija izmantot atslēgvārdu var. Atslēgvārds var ir ļoti “elastīgs”. Apskatīsim dažu var deklarētu mainīgo īpašības. Pirmkārt, to var izmantot kodā pat pirms tas ir deklarēts. Turklāt to var atkārtoti deklarēt, izmantojot var. Mainīgie ir “scoupoti” ar funkciju, ja tie ir deklarēti ārpus funkcijas, šis scope ir globāls…

ES6 ieteiktajā veidā, kā deklarēt mainīgos, ir izmantot atslēgvārdus let vai const. Tā sintakse ir ļoti līdzīga var sintaksei. Tā vienīgi aizvieto atslēgvārdu. Piemēram, pieņemsim, ka vēlaties deklarēt mainīgo ar nosaukumu user un piešķirt tam vērtību ar virknes vērtību Miranda. ES5 izmanto atslēgvārdu var, mainīgo user, vienādojuma operatoru un tad virknes vērtību Miranda dubultpēdiņās.

ES5 Piemērs:

 

var user = "Miranda";

 

ES6 Piemērs:

let user = "Miranda";

const user = "Miranda";

ES6 izmanto to pašu sintaksi, tikai aizvietojot atslēgvārdu var ar let vai const. Ņemiet vērā, ka sintakse ir ļoti līdzīga. Varbūt Jums radīsies jautājums, kāda tad ir atšķirība starp var, let un const? Vienkāršākais skaidrojums ir tāds, ka let un const uzvedība ir stingrāka. Ar let vai const mainīgo nevar izmantot kodā pirms tā deklarēšanas. To var atkārtoti deklarēt, izmantojot atslēgvārdu, tāpat kā var. Beigās tā ir “scoupota” ar blokā, pat ja ir iekļauta if izteiksmēs un ciklos, piemēram, far vai while ciklos. Ja jūs esat jauns JavaScript lietotājs, var rasties šaubas par to, kad izmantot var, let vai const. Lietderīgs padoms ir atcerēties šādi: izmantojiet let, ja vērtība var mainīties nākotnē, un izmantojiet const, ja vērtība nekad nemainīsies. Šajā rakstā jūs uzzinājāt, kā mainās mainīgo scope, izmantojot atslēgvārdu var ES5 JavaScript un atslēgvārdus let un const ES6 JavaScript.

 

Loading

Noderīgs raksts? Dalies ar citiem: