Javascript 错误:';让';声明只能在块内声明
在我的项目中,我有以下几行:Javascript 错误:';让';声明只能在块内声明,javascript,jquery,if-statement,Javascript,Jquery,If Statement,在我的项目中,我有以下几行: if (text.length > 0) { let data = "Some value"; } 因为if中只有一条语句,所以我想删除括号({})。我的代码应该是这样的: if (text.length > 0) let data = "Some value"; 但是,我得到了以下错误: “let”声明只能在块内声明 如果没有括号,if中的每一条语句都可以正常工作。为什么会出现此错误?let声明的变量的作用域是定义它们的块,因此需要
if (text.length > 0) {
let data = "Some value";
}
因为if
中只有一条语句,所以我想删除括号({}
)。我的代码应该是这样的:
if (text.length > 0)
let data = "Some value";
但是,我得到了以下错误:
“let”声明只能在块内声明
如果没有括号,
if
中的每一条语句都可以正常工作。为什么会出现此错误?let声明的变量的作用域是定义它们的块,因此需要括号来定义作用域。
您可以使用let建立仅作用于单个表达式的变量:
var a = 5;
let(a = 6) console.log(a); // 6
console.log(a); // 5
注意:let表达式和let块是非标准的let扩展,它们的支持已被放弃。因为“let”声明只能在块内声明 事实上,这样的代码是无用的,因为
let
和const
是块范围的
if (foo) {
let bar = true;
}
bar // bar doesn't exist here;
因此,即使您的许可证合法,它也不会起作用-因此它是被禁止的。您想在那里使用let的原因是什么?在这个if语句之外它将不可见。@Andrey,这个答案太技术化和神秘,如果有什么问题的话,应该标记为这个问题的副本。
let(a=6)console.log(a)
这不是有效的JavaScript语法。你的意思是它是非标准的,但它是有效的。请参阅以了解更多信息-此语法是建议使用的,但已从规范中删除。它在Firefox 44+中不再适用,并且从未在IE或ChromeI中使用过。我将对其进行编辑以注意到,在这种情况下,变量不会无用:let server=app.listen(()=>console.log(server.address())
。是的,这是有效的(除非您尝试将其与一行一起使用,如果
)。