以下代码在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中的错误吗?
答案 0 :(得分:2)
如果你只运行一次它就有效。第二次尝试相同的代码时,原始webapp-archetype
仍然存在。