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 増加します。

・他の変数に代入する場合は、加算のタイミングが違うので注意が必要です。