2016-09-28 152 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