Sobes.tech
Junior

Co je to rozsah (scope) proměnných v JavaScriptu?

sobes.tech AI

Odpověď od AI

Rozsah určuje dostupnost proměnných, funkcí a objektů v určité části kódu.

V JavaScriptu existuje několik typů rozsahu:

  • Globální rozsah (Global Scope): Proměnné deklarované mimo jakoukoli funkci nebo blok jsou dostupné z kteréhokoli místa v kódu.
  • Funkční rozsah (Function Scope): Proměnné deklarované uvnitř funkce (před ES6) jsou dostupné pouze uvnitř této funkce a vnořených funkcí.
  • Blokový rozsah (Block Scope): Proměnné deklarované pomocí let a const uvnitř bloků (například {} nebo smyček) jsou dostupné pouze uvnitř tohoto bloku.

Příklad:

// Globální rozsah
let globalVar = "Jsem globální";

function someFunction() {
  // Funkční rozsah (před ES6)
  var functionVar = "Jsem uvnitř funkce";
  console.log(globalVar); // Přístupná globální proměnná

  if (true) {
    // Blokový rozsah (pro let a const)
    let blockVar = "Jsem uvnitř bloku";
    console.log(functionVar); // Přístupná proměnná funkce
    console.log(blockVar); // Přístupná proměnná bloku
  }

  // console.log(blockVar); // Chyba: blockVar není dostupná zde
}

someFunction();
// console.log(functionVar); // Chyba: functionVar není dostupná zde

Klíčová slova pro deklaraci proměnných a jejich vliv na rozsah:

Klíčové slovo Před ES6 rozsah Po ES6 rozsah
var Funkční Funkční
let - Blokový
const - Blokový

Porozumění rozsahu je klíčové pro prevenci konfliktů jmen proměnných a pro psaní čistého a předvídatelného kódu.