Это ошибка в Firefox Developer Edition?
Посмотрите на код ниже:
var c = 50;
{
console.log(y);
let y = 50;
}
Этот код, как ожидают, бросит ReferenceError, и это делает. Но в консоли сообщение с приложением за исключением просто ошеломило меня. Это говорит:
ReferenceError: не может получить доступ к лексическому объявлению 'c' до инициализации
В коде c
первая объявленная переменная Сообщение об ошибке указывает, что что-то не так с объявлением c
, Это явно y
переменная внутри блока, вызывающая исключение. Мы не можем использовать переменные, объявленные с помощью let
до его объявления. Когда я объявляю другую переменную в первой строке, скажите test
сообщение об ошибке меняется на:
ReferenceError: не может получить доступ к лексическому объявлению 'test' до инициализации
Я что-то упустил или я прав насчет ошибки? У меня установлена последняя версия Firefox Developer Edition (версия 49.0a2).
Еще одна вещь, на которую стоит обратить внимание, это то, что блок - это просто закрывающий блок, а не тело функции.
1 ответ
Этот пост сделан в соответствии с этим мета постом, а не закрыт (см. Это).
Как Martin Smith и Martin Smith ( 1, 2), эта проблема была решена в версии 53/54. Соответствующий отчет об Devashish Jaiswal, сделанный Devashish Jaiswal (оригинальный постер).