Przejdź do treści głównej
INF.03Frontend & JS

Zasięg zmiennych i Hoisting (let, const vs var)

Mechanizmy określające widoczność zmiennych w blokach kodu oraz wynoszenie deklaracji zmiennych i funkcji na górę zakresu (Hoisting).

Porównanie let, const i var:

Cechavarletconst
Zasięg (Scope)FunkcyjnyBlokowy { ... }Blokowy { ... }
HoistingTak (inicjalizowane jako undefined)Tak (w strefie TDZ, błąd przed deklaracją)Tak (w strefie TDZ, błąd przed deklaracją)
RedeklaracjaDozwolonaZgłasza błądZgłasza błąd
Reasercja (zmiana wartości)DozwolonaDozwolonaNiedozwolona
JAVASCRIPT
// Przykład zasięgu blokowego:
if (true) {
    var x = 10;
    let y = 20;
}
console.log(x); // 10 (var wycieka poza blok)
// console.log(y); // ReferenceError: y is not defined

Najczęstsze pułapki na egzaminie INF.03:

  • Deklaracja const chroni przed ponownym przypisaniem samej referencji zmiennej, ale nie blokuje mutacji wnętrza tablicy lub obiektu (const tab = []; tab.push(1); jest w 100% poprawne).

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Zasięg zmiennych i Hoisting (let, const vs var) lub rozpocznij trening.