错误:’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 expressionlet block是非标准let扩展,并且它们的支持已被删除。

因为’let’声明只能在块内声明。

实际上,这样的代码是没用的,因为letconst是块作用域的。

 if (foo) { let bar = true; } bar // bar doesn't exist here; 

因此,即使你的合法,它也行不通 – 所以这是禁止的。