2016-09-10 4 views
0

Kyle's You Dont Know Jsで「グラマー」の章を進んでいます。 this link at MDN 1として混乱オペレーターの優先順位について

...++Postfix incrementPrefix increment++...さえ& =よりも優先されています。しかし、javascriptでは、次のコードはそうでないことを証明しているようです。

var a = 1; 
var b = a++; // b = 1; a = 2; 
var c = ++a; // c = 3; a = 3; 

何が間違っていますか?上記のコードでは、= & ...++Postfix incrementは、= & ++...より優先順位が高いことを示していませんか?

+0

ポストインクリメントとプリインクリメントについては、「優先順位」よりも – Rayon

+0

ポストインクリメント/デクリメントは常に前の値を返す - 優先順位は「返される」値とは無関係 –

答えて

1

評価の順序は、(高い優先順位から低)である:MDNから後置オペレータa++、接頭オペレータ++a、(左から右への)付加オペレータ+、及び代入演算子=、。

以下を見てください:

var a = 1; 
var b = a++ + ++a + a++; 
// The order is: 
// b = 1 + ++a + a++; 
// b = 1 + ++a + 2; 
// b = 1 + 4 + 2; 
// b = 7; a = 4; 

評価の順序が最後の操作、すなわち代入演算子を終了した後に後置演算子はaの値をインクリメントするだけということ、維持されます。

+0

ありがとう、あなたの例が、私は今それを得ると感じています。良い例と答えが受け入れられました。 – Kayote

関連する問題