Для фрагмента с вызовом функции до её присваивания переменной, например var foo = function () {}, определите результат выполнения и объясните hoisting.

При вызове до присваивания var-переменная равна undefined, поэтому попытка вызвать её как функцию приводит к TypeError.

Короткий ответ

Что ответить на собеседовании

При вызове до присваивания var-переменная равна undefined, поэтому попытка вызвать её как функцию приводит к TypeError.

Подробный разбор

Ответ с пояснениями

При вызове до присваивания var-переменная равна undefined, поэтому попытка вызвать её как функцию приводит к TypeError.

Пример: foo(); var foo = function () {};. Объявление var поднимается и инициализируется undefined, но присваивание функции происходит только в своей строке. У function declaration поведение другое: её можно вызвать раньше объявления в соответствующей области. Для let/const до инициализации действует temporal dead zone.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее