javascript - 它是 firefox 开发者版中的错误吗?

标签 javascript firefox console.log referenceerror firefox-developer-edition

看看下面的代码:

var c = 50;

{
    console.log(y);
    let y = 50;
}

这段代码应该会抛出一个 ReferenceError 而它确实会抛出。但是在控制台中,附带异常的消息让我大吃一惊。它说:

ReferenceError: can't access lexical declaration 'c' before initialization

在代码中,c 是声明的第一个变量。错误消息表明 c 的声明有问题。显然是 block 内的 y 变量导致了异常。我们不能在声明之前使用使用 let 声明的变量。当我在第一行声明另一个变量时,比如 test,错误消息变为:

ReferenceError: can't access lexical declaration 'test' before initialization

我是否遗漏了什么或者我对错误的看法是否正确?我有最新的 Firefox Developer Edition(版本 49.0a2)。

另一件值得注意的事情是 block 只是一个封闭 block ,它不是函数体。

最佳答案

本帖是按照 this meta post 制作的,而不是关闭的(见 this )。


正如 @Martin Smith@Sam Onela 所说( 12 ),这个问题在版本 53/54 中得到了解决。 Relevant bugzilla report ,由 Devashish 制作(原始海报)。

关于javascript - 它是 firefox 开发者版中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258719/

相关文章:

JavaScript EventSource SSE 未在浏览器中触发

javascript - jQuery 中的宽度切换动画在 FireFox 中不起作用?

javascript - Firefox 插件 - 我可以监听 nsIPromptService 处理的提示吗?

javascript - for循环打印出多个具有相似名称的数组

javascript - 如何 return 或 console.log 我的函数以返回我选择的数组?

javascript - 增量按钮未附加到数量字段

javascript - 主干一次性ajax请求

javascript - 如何参数化模块,以便它可以按需配置需要它的应用程序?

css - google chrome for mac定位头痛

javascript - 如何通过按类名遍历元素来引用元素的 id