質問: 1; a++; alert(a);//2が表示された。 ``` ### 試した事 前置・後置について検索するも、数字を入れた変数に対して、増加させる時に別の変数に代入する場合ばかりで、別の変数に代入させない場合の挙動が不明だった。
回答: `a++` と `++a` は式です。 式と演算子 - JavaScript | MDN 式というのは大雑把に言うと、「評価できる値を持つもの」です。 式 (プログラミング) - Wikipedia) `a++` の値は演算する前の `a` の値で、`++a` の値は演算する前の `a` の値に 1 を加えたものです。 `++` は前置後置のどちらも `a` の値を 1 増やすという副作用を持ちます。 副作用とは、式の値と無関係に何か状態を変化させるもののことです。 副作用 (プログラム) - Wikipedia) つまり、**代入や演算など式として評価した際には前置と後置は違う値を示します**が、その**副作用は変数の値を 1 増やすという同じもの**です。 値は違うけれども副作用は同じなので、**値を考えない場合、この二つは同じもの**であるといえます。`for (let i = 0; i < 10; i++)` の場合、`i++` の値は捨てられています。よって副作用のみが意味を持つため、この場合前置と後置は同じものと言えます。