Что выведет код Middle Области видимости и замыкания обновлено
Немедленно вызываемая функция
Вопрос
Что выведет код? По строке на каждый вывод.
var v = 'внешняя';
(function () {
console.log(v);
var v = 'внутренняя';
console.log(v);
})();
console.log(v);
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: undefined, внутренняя, внешняя. Почему так Внутренняя var затеняет внешнюю переменную на всю функцию, включая строки до объявления - там она уже undefined.
Что выведет
undefined
внутренняя
внешняя
Разбор
Почему так
Внутренняя var затеняет внешнюю переменную на всю функцию, включая строки до объявления - там она уже undefined. С let вместо var это была бы ошибка TDZ.
Вывод
undefined
внутренняя
внешняя
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.