Sobes.tech
Junior

Čo je to rozsah (scope) premenných v JavaScriptu?

sobes.tech AI

Odpoveď od AI

Rozsah určuje dostupnosť premenných, funkcií a objektov v určitej časti kódu.

V JavaScripte existuje niekoľko typov rozsahu:

  • Globálny rozsah (Global Scope): Premenné deklarované mimo akúkoľvek funkciu alebo blok sú dostupné z ktorejkoľvek časti kódu.
  • Rozsah funkcie (Function Scope): Premenné deklarované vo vnútri funkcie (pred ES6) sú dostupné iba v tejto funkcii a vo vnorených funkciách.
  • Blokový rozsah (Block Scope): Premenné deklarované pomocou let a const v rámci blokov (napríklad {} alebo slučky) sú dostupné iba v rámci tohto bloku.

Príklad:

// Globálny rozsah
let globalVar = "Som globálny";

function someFunction() {
  // Rozsah funkcie (pred ES6)
  var functionVar = "Som vo funkcii";
  console.log(globalVar); // Prístupná globálna premenná

  if (true) {
    // Blokový rozsah (pre let a const)
    let blockVar = "Som v bloku";
    console.log(functionVar); // Prístupná premenná funkcie
    console.log(blockVar); // Prístupná premenná bloku
  }

  // console.log(blockVar); // Chyba: blockVar nie je dostupná tu
}

someFunction();
// console.log(functionVar); // Chyba: functionVar nie je dostupná tu

Kľúčové slová na deklaráciu premenných a ich vplyv na rozsah:

Kľúčové slovo Pred ES6 rozsah Po ES6 rozsah
var Funkčný Funkčný
let - Blokový
const - Blokový

Porozumenie rozsahu je kľúčové na predchádzanie konfliktom mien premenných a na písanie čistého a predvídateľného kódu.