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:
| Cecha | var | let | const |
|---|---|---|---|
| Zasięg (Scope) | Funkcyjny | Blokowy { ... } | Blokowy { ... } |
| Hoisting | Tak (inicjalizowane jako undefined) | Tak (w strefie TDZ, błąd przed deklaracją) | Tak (w strefie TDZ, błąd przed deklaracją) |
| Redeklaracja | Dozwolona | Zgłasza błąd | Zgłasza błąd |
| Reasercja (zmiana wartości) | Dozwolona | Dozwolona | Niedozwolona |
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 definedNajczęstsze pułapki na egzaminie INF.03:
- Deklaracja
constchroni 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.