我只是簡單地使用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]
我找的實際原因失敗。謝謝!
我只是簡單地使用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]
我找的實際原因失敗。謝謝!
如果分號停止,解析器是否試圖將屬性拉出2?讓b = 2 [a,b] ...?
是的。如果您沒有用分號明確地結束語句,則無法安全地使用[
開始語句。
在許多地方,這已經被寫入有關,它的的很多事情,standardJS(或其他棉短絨)會提醒你注意:http://standardjs.com/rules.html#semicolons
@ brso05這是因爲它被解析爲'let b = 2 [a,b] = [b,a]',這意味着你試圖在'b'的定義內引用'b' *。 – meagar
你在控制檯中看到什麼錯誤? – brso05
你有沒有「嚴格使用」的地方? – randominstanceOfLivingThing