foundation
Hoisting и привязки
var, let, const, объявления функций, temporal dead zone и момент инициализации.
Hoisting означает, что объявления обрабатываются до выполнения. Объявления `function` полностью поднимаются и вызываемы до своей строки. `var` поднимается и инициализируется как `undefined`. `let` и `const` поднимаются, но живут в temporal dead zone до инициализации — раннее чтение выбрасывает `ReferenceError`.
console.log(kind);
let kind = 'module'; // ReferenceError
`const` запрещает перепривязку переменной, но не мутацию содержимого объекта. Function expression на `const` следует TDZ до присваивания.
На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и производительностью или между безопасностью и удобством.
Чеклист:
- Разделяйте объявление и инициализацию.
- Знайте function scope у var и block scope у let/const.
- Объясните TDZ и разницу const binding vs мутация объекта.