Что будет, если объявить переменную без ключевого слова (просто a = 1)? Какая у неё будет область видимости?

Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.

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

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

Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.

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

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

Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.

Это не корректный способ объявлять переменную: неявное глобальное состояние создаёт конфликты. Если a уже существует во внешней области, присваивание изменит эту привязку по правилам поиска имени. Поэтому результат зависит от окружения и существующих объявлений.

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

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

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

Подробнее