【发布时间】:2015-12-18 04:41:11
【问题描述】:
if (true) {
let x = 5
}
按预期工作(没有语法错误),但是
if (true) let x = 5
在 Node 4.1.0 和 babel 中抛出 SyntaxError: Unexpected strict mode reserved word
这是预期的行为吗?我知道这是一个愚蠢的例子。我只是想知道这是否是一个错误。
【问题讨论】:
-
因为
let是基于块的,上面不是块,我认为错误是不可避免的。无论如何,您将无法在此声明之后使用let,因为这是一个单行“块”。 -
如果您考虑一下,这是有道理的。即使这里有 块作用域,那么块作用域变量在其中有什么用呢?因为你永远无法使用它
-
好的,预期的和合理的行为。谢谢。
-
当我在 Firefox 中尝试这样做时,我收到一条更重要的错误消息:
SyntaxError: lexical declaration not directly within block。 -
@Guffa 这绝对是一个更好的错误信息。
标签: javascript node.js ecmascript-6 babeljs