在我的项目中,我有以下几行:
if (text.length > 0) {
let data = "Some value";
}
因为if
中只有一个语句,我想删除括号({ }
)。我的代码看起来像这样:
if (text.length > 0)
let data = "Some value";
但是我收到以下错误:
'let'声明只能在块内声明。
if
中的每个其他单个语句在没有括号的情况下工作正常。为什么我会收到此错误?
答案 0 :(得分:2)
因为'let'声明只能在块内声明。
事实上,这样的代码是无用的,因为let
和const
是块范围的。
if (foo) {
let bar = true;
}
bar // bar doesn't exist here;
所以,即使你是合法的,它也行不通 - 所以这是禁止的。
答案 1 :(得分:1)
let声明的变量的范围是定义它们的块,因此需要括号来定义范围。 您可以使用let来建立仅限于单个表达式的变量:
var a = 5;
let(a = 6) console.log(a); // 6
console.log(a); // 5
注意:让表达式和让阻止是非标准的扩展,并且它们的支持已被删除。