Что такое поднятие (hoisting) переменных и функций?
Уровень: Junior
Ответ
Hoisting («поднятие») – это поведение JavaScript, при котором объявления переменных и функций как бы перемещаются интерпретатором в начало своей области видимости. Например, функции, объявленные как `function declaration`, полностью поднимаются – ими можно воспользоваться до места объявления в коде. Переменные, объявленные через `var`, тоже поднимаются, но без инициализации – до присваивания их значение будет `undefined`. Объявления `let`/`const` также концептуально поднимаются, но находятся во «временной мёртвой зоне», и доступ к ним до инициализации вызывает ошибку.