2016-09-28 5 views
0

私は単純にes6を使用して変数を再割り当てします& 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

関連する問題