在Firefox Scratchpad中使用let时的范围问题

时间:2017-03-13 01:36:36

标签: javascript firefox ecmascript-6

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

function scope() {
    let x = 1;
}

let x = 2;

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

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

在Chrome中将此代码作为代码段运行,或在Firefox中使用<script>标记的HTML页面内运行此代码不会触发异常。将它包装在一个函数中,甚至一对{}括号中也可以解决这个问题。

它可能是Scratchpad中的错误吗?

1 个答案:

答案 0 :(得分:2)

如果你只运行一次它就有效。第二次尝试相同的代码时,原始webapp-archetype仍然存在。