Что такое Hoisting

Ответ

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;