Переменная let (область видимости) [дубликат]

321
05 июля 2017, 00:52

На данный вопрос уже ответили:

  • Всплывают ли переменные, объявленные с помощью let и const в ES6? 1 ответ

Изучая переменные в js наткнулся на интересную вещь, а именно вот на такое

let a = 10;
(function(){
  console.log(a);
  let a = 100;
  console.log(a);
})();

Если это запустить через транскомпилятор то первая консоль выведет undefined и будет правильно т.к сработает всплытие переменной. Если этот код запустить без транскомпилятора то мы получим ошибку Uncaught ReferenceError: a is not defined

Вот тут и возникает вопрос, почему возникает ошибка без транскомпилятора ведь мы имеем доступ к переменной из вне? Объясните данную невнятность.

P.S Переменная var также как и функции всплывают, но всплывает ли переменная let? Разные источники пишут по-разному, "у кого-то всплывает, у кого-то нет"... не ясно... Так всплывает ли? И как работает всплытие переменной let?

Answer 1

Второй раз переменная переопределяется внутри скобок, и интерпретатор проведя анализ, знает что она будет определена внутри скобок, по этому не ищет ее во внешнем скопе, а выводит ошибку. http://learn.javascript.ru/let-const

READ ALSO
Аналог MapArea в JavaScript, ссылка на изображении

Аналог MapArea в JavaScript, ссылка на изображении

Добрый день, подскажите пожалуйста, как сделать активные области как ссылки на изображении, которое вызывается в js файле, и все это дело происходит...

291
сервлет и javascript

сервлет и javascript

Как можно данные с сервлета передать на HTML страницу и вывести их там с помощью JavaScript?

182
Unit тесты для javascript с моками

Unit тесты для javascript с моками

Как можно тестировать javascript с моками хотелось бы запускать тест чтобы при этом запускался эмулятор реста и проверка, догадываюсь что это...

274
Авто прокрутка страницы

Авто прокрутка страницы

У меня такой код Javascript для авто прокрутки:

252