错误:'let'声明只能在块内声明

时间:2016-05-11 13:43:42

标签: javascript jquery if-statement

在我的项目中,我有以下几行:

if (text.length > 0) {
    let data = "Some value";
}

因为if中只有一个语句,我想删除括号({ })。我的代码看起来像这样:

if (text.length > 0)
    let data = "Some value";

但是我收到以下错误:

  

'let'声明只能在块内声明。

if中的每个其他单个语句在没有括号的情况下工作正常。为什么我会收到此错误?

2 个答案:

答案 0 :(得分:2)

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

事实上,这样的代码是无用的,因为letconst是块范围的。

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

注意:让表达式让阻止是非标准的扩展,并且它们的支持已被删除。