Вопрос на JavaScript собеседовании.Что выведет этот код?
var y = 1;
if (function f() {}) {
y += typeof f;
}
console.log(y);
Ответ: Этот код выведет «1undefined».
В условном операторе мы описываем пустую функцию — function f() {}. С описанием всё в порядке, и функция определена корректно, поэтому мы получаем true, а значит — переходим к тому, что делает условный оператор. А вот там уже мы пытаемся получить тип объекта f, но проблема в том, что он определён в условии и не виден внутри фигурных скобок. Его область видимости — условие, которое мы уже проверили, и дальше эта функция нигде не видна, поэтому к единице добавляется сообщение, что переменная не определена.#js #собеседование