为什么这里需要分号?

时间:2016-09-28 17:11:10

标签: javascript browser ecmascript-6

我只是使用es6重新分配变量a&湾如果我将分号从a和b声明和赋值语句中删除,为什么会出现错误?如果分号被取消,解析器是否会尝试从2中提取属性?设b = 2 [a,b] ......?

Works:
let a = 1;
let b = 2;
[a, b] = [b, a]

Error:

let a = 1
let b = 2
[a, b] = [b, a]

我正在寻找失败的实际原因。谢谢!

1 个答案:

答案 0 :(得分:1)

  

如果分号被关闭,解析器是否会尝试从2中提取属性?设b = 2 [a,b] ......?

是。如果您没有使用分号明确结束语句,则无法安全地使用[开始声明。

这是在许多地方写过的,而且它是标准的JS(或其他短语)会警告你的许多事情之一:http://standardjs.com/rules.html#semicolons