Zakres i domknięcia (closures)
Zrozum gdzie 'żyje' zmienna i jak domknięcia zapamiętują kontekst
Scope = зона видимості змінної
Уяви будинок з кімнатами. Змінна оголошена в кімнаті (функції) — видна тільки в ній. Змінна в коридорі (глобально) — видна скрізь. Але з кімнати можна «виглянути» в коридор, а з коридору не можна зазирнути в кімнату.
Функція бачить змінні зовні, але зовні не видно що всередині функції.
let і const — блоковий scope
let і const живуть тільки всередині { } де оголошені:
if (true) {
let blockVar = "блок";
console.log(blockVar); // ✅ працює
}
// console.log(blockVar); // ❌ не видна поза блокомvar — старий спосіб, живе у функції (не в блоці) — саме тому зараз використовують let/const.
Замикання (closure)
Замикання — це функція, яка запам'ятовує змінні з місця де була створена:
Внутрішня функція 'замкнула' в собі змінну count. Кожен виклик збільшує той самий count.
Замикання — одна з найпотужніших концепцій JavaScript. Вони використовуються для: приватних змінних, фабрик функцій, мемоізації. Не переживай якщо не відразу зрозуміло — це приходить з практикою.