2016-09-28 153 views
0

我只是简单地使用es6重新分配变量a & b。如果我将分号从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]

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

+0

你在控制台中看到什么错误? – brso05

+0

你有没有“严格使用”的地方? – randominstanceOfLivingThing

回答

1

如果分号停止,解析器是否试图将属性拉出2?让b = 2 [a,b] ...?

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

在许多地方,这已经被写入有关,它的的很多事情,standardJS(或其他棉短绒)会提醒你注意:http://standardjs.com/rules.html#semicolons

+1

@ brso05这是因为它被解析为'let b = 2 [a,b] = [b,a]',这意味着你试图在'b'的定义内引用'b' *。 – meagar