Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя
Веб-разработчик, геймер, специалист по этике  · 25 апр

Что выведет следующий код?

(function () {
    let x = 1;
    {
        let x = 2;
    }
    console.log(x);
})()
Попробуйте сначала дать ответ в уме, прежде чем жать F12 и копипастить код в консоль.
SyntaxError: Unexpected token '{'
2
ReferenceError: x is not defined
1
SyntaxError: Unexpected token '('
Выполнится молча
SyntaxError: Function statements require a function name
18 проголосовали
Марк, спасибо за активность в сообществе и интересные вопросы!
Конечно же один:
Внутри функции объявляется переменная x со значением 1. Затем внутри блока кода создается новая переменная x со значением 2, но эта переменная существует только внутри блока кода, и после того как блок кода завершится, она будет уничтожена.
То есть при выводе значения переменной x в консоль будет использоваться значение переменной x, объявленной внутри функции, которая равна одному.
@Oleg Polikhronidi, вы зачем спойлерите? 😏 Всего четверо проголосовали, и никто больше теперь не сможет. 😏