Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.
Что будет, если объявить переменную без ключевого слова (просто a = 1)? Какая у неё будет область видимости?
Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если имя a нигде не объявлено, присваивание a = 1 в strict mode и ES-модуле вызывает ReferenceError. В обычном нестрогом script оно может создать свойство глобального объекта.
Это не корректный способ объявлять переменную: неявное глобальное состояние создаёт конфликты. Если a уже существует во внешней области, присваивание изменит эту привязку по правилам поиска имени. Поэтому результат зависит от окружения и существующих объявлений.