Console Output Challenge #98

Порядок вывода: 50, 150, 50. InnerB существует только внутри if и не меняет outerB, доступную из внешней области.

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

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

Порядок вывода: 50, 150, 50. InnerB существует только внутри if и не меняет outerB, доступную из внешней области.

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

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

Условие

В этом задании необходимо понять, какой результат будет выведен в консоль при выполнении программы, учитывая особенности областей видимости переменных var и let. Обратите внимание на то, как переменная, объявленная внутри блока if, «перекрывает» переменную с тем же именем, объявленную во внешней области.

var outerB = 50;

function showValues() {
    console.log(outerB);
    if (true) {
        let innerB = 150;
        console.log(innerB);
    }
    console.log(outerB);
}

showValues();

Определите порядок и значения, которые появятся в консоли при запуске данного кода.

Ответ

Порядок вывода: 50, 150, 50. InnerB существует только внутри if и не меняет outerB, доступную из внешней области.

Описание упоминает перекрытие одинаковых имён, но фактический код использует разные имена: outerB и innerB. Поэтому здесь нет даже shadowing одной переменной другой. Для вывода важнее смотреть на сам фрагмент, а не на неточный вводный текст.

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

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

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

Подробнее