JavaScript - 「変数++」と「++変数」の違い
「++演算子」はインクリメント演算子と呼ばれ、 「変数++」 や「++変数」という形式で記述されます。
どちらも変数の値を増加させるのは同じなのですが、 他の変数に代入する場合は結果が違ってきます。
ここでは「変数++」 と「++変数」の違いについて説明します。
「++演算子」の働き
次のサンプルプログラムをみてもわかるように、 「変数++」も 「++変数」もどちらも変数の値を1増加させます。
つまり、「変数 = 変数 + 1」と同じです。
var i = 0;
i++;
console.log(i); // 1
++i;
console.log(i); // 2
「変数++」と「++変数」の違い
他の変数に代入する場合は、 加算するタイミングが異なるので注意が必要です。
「変数++」(後置インクリメント演算子)の場合
まずは「変数++」の場合を見てみます。
var i = 0, k = 0;
k = i++;
console.log(i); // 1
console.log(k); // 0
「変数++」の場合、i の値を k に代入した後に、i の値が加算されます。
ですから、i の値が 1、k の値が 0 となります。
「i++」のように、被演算子(変数)の後にあるインクリメント演算子を 「後置インクリメント演算子」と言います。
「++変数」(前置インクリメント演算子)の場合
次に「++変数」の場合を見てみます。
var i = 0, k = 0;
k = ++i;
console.log(i); // 1
console.log(k); // 1
「++変数」の場合、i の値を加算した後に、k に代入されます。
ですから、i の値が 1、k の値も 1 となります。
「++i」のように、被演算子(変数)の前にあるインクリメント演算子を 「前置インクリメント演算子」と言います。
まとめ
・「変数++」も「++変数」もどちらも変数の値を 1 増加します。
・他の変数に代入する場合は、加算のタイミングが違うので注意が必要です。