【问题标题】:Scoping problems when using let in Firefox Scratchpad在 Firefox Scratchpad 中使用 let 时的范围问题
【发布时间】:2017-03-13 01:36:36
【问题描述】:

当我在 Firefox 52 Scratchpad 中运行以下代码时会产生错误:

function scope() {
    let x = 1;
}

let x = 2;

/*
Exception: SyntaxError: redeclaration of let x
@Scratchpad/8:1:1
*/

如何解释?第一个x应该封装在函数中,不干扰第二个声明。

在 Chrome 中将此代码作为 sn-p 运行,或在 Firefox 中带有 <script> 标记的 HTML 页面内运行不会触发异常。也可以将它包装在一个函数中,甚至是一对{} 括号消除了这个问题。

这可能是 Scratchpad 中的错误吗?

【问题讨论】:

标签: javascript firefox ecmascript-6


【解决方案1】:

如果你只运行一次它就可以工作。第二次尝试相同的代码时,原来的let x = 2; 仍然存在。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-12-01
  • 2012-04-04
  • 1970-01-01
  • 2013-12-27
  • 2014-10-29
  • 2012-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多