Sobes.tech
Junior

Kas ir mainīgo redzesloka (scope) JavaScript?

sobes.tech AI

Atbilde no AI

Redzes apjoms ir nosaka mainīgo, funkciju un objektu pieejamību noteiktā koda daļā.

JavaScript ir vairāki redzes apjoma tipi:

  • Pasaules redzes apjoms (Global Scope): Mainīgie, kas ir deklarēti ārpus jebkuras funkcijas vai bloka, ir pieejami jebkurā koda daļā.
  • Funkcijas redzes apjoms (Function Scope): Mainīgie, kas ir deklarēti funkcijas iekšienē (pirms ES6), ir pieejami tikai šajā funkcijā un tās iekšienē esošajās funkcijās.
  • Bloka redzes apjoms (Block Scope): Mainīgie, kas ir deklarēti ar let un const blokos (piemēram, {} vai ciklos), ir pieejami tikai šajā blokā.

Piemērs:

// Pasaules redzes apjoms
let globalVar = "Es esmu globāls";

function someFunction() {
  // Funkcijas redzes apjoms (pirms ES6)
  var functionVar = "Es esmu funkcijas iekšienē";
  console.log(globalVar); // pieejama globālā mainīgā

  if (true) {
    // Bloka redzes apjoms (ar let un const)
    let blockVar = "Es esmu bloka iekšienē";
    console.log(functionVar); // pieejama funkcijas mainīgā
    console.log(blockVar); // pieejama bloka mainīgā
  }

  // console.log(blockVar); // kļūda: blockVar šeit nav pieejama
}

someFunction();
// console.log(functionVar); // kļūda: functionVar šeit nav pieejama

Mainīgo deklarēšanas vārdi un to ietekme uz redzes apjomu:

Atslēgvārds Pirms ES6 redzes apjoms Pēc ES6 redzes apjoms
var Funkcionāls Funkcionāls
let - Blokveida
const - Blokveida

Saprašana par redzes apjomu ir būtiska, lai izvairītos no mainīgo nosaukumu konfliktiem un rakstītu tīru un paredzamu kodu.