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í
letaconstuvnitř 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.