Что выведет код Junior Типы и приведение обновлено

typeof несуществующей переменной

Вопрос

Что выведет код? По строке на каждый вывод.

console.log(typeof notDeclared);
try { console.log(notDeclared); } catch (e) { console.log(e.constructor.name); }
console.log(typeof typeof 1);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: undefined, ReferenceError, string. Почему так typeof не бросает ReferenceError на необъявленной переменной - это использовали для проверки окружения до появления модулей. typeof всегда возвращает строку, поэтому typeof typeof x === 'string'.

Что выведет

undefined
ReferenceError
string

Разбор

Почему так

typeof не бросает ReferenceError на необъявленной переменной - это использовали для проверки окружения до появления модулей. typeof всегда возвращает строку, поэтому typeof typeof x === 'string'.

Вывод

undefined
ReferenceError
string

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме