错误:’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 expression和let block是非标准let扩展,并且它们的支持已被删除。
因为’let’声明只能在块内声明。
实际上,这样的代码是没用的,因为let
和const
是块作用域的。
if (foo) { let bar = true; } bar // bar doesn't exist here;
因此,即使你的合法,它也行不通 – 所以这是禁止的。