Ответ
Hoisting — это механизм в JavaScript, при котором объявления переменных и функций "поднимаются" вверх своей области видимости перед выполнением кода.
Переменные:
var
— hoisting с инициализациейundefined
let
/const
— hoisting без инициализации (временная мертвая зона)
Функции:
- Function Declaration — поднимается целиком
- Function Expression — поднимается как переменная
Пример:
console.log(x); // undefined (hoisting var)
var x = 5;
sayHi(); // "Hello" (Function Declaration hoisted)
function sayHi() { console.log("Hello"); }
// console.log(y); // ReferenceError (TDZ для let)
let y = 10;