JavaScript: インクリメント演算子「i++」と「++i」の違い

「++演算子」はインクリメント演算子とも言われ、単項算術演算子の1つです。
もうひとつは「--演算子」があり、デクリメント演算子と言われます。

「i++」と「++i」の違い

まずは「++演算子」から見ていきます。
「i++」も「++i」もどちらも1を加算します。 つまり「i = i + 1」と同じです。

ただし加算するタイミングが異なります。違いを次のコードで確認してみます。
var i = 1;
var k = i++;
console.log(i);  // 2
console.log(k);  // 1


var i = 1;
var k = ++i;
console.log(i);  // 2
console.log(k);  // 2

上のコードが「i++」下が「++i」です。
「i++」では変数kに代入した後に加算しています。ですからkの値は「1」となります。

「++i」では加算した後に変数kに代入しています。ですからkの値は「2」となります。

このようにインクリメント演算子を使う時に、同時に変数に代入する場合は注意が必要です。

「i--」と「--i」の違い

次は「--演算子」です。
「i--」も「--i」もどちらも1を減算します。 つまり「i = i - 1」と同じです。

「++演算子」と同じように「--演算子」も減算するタイミングが異なりますので、確認してみます。
var i = 1;
var k = i--;
console.log(i);  // 0
console.log(k);  // 1


var i = 1;
var k = --i;
console.log(i);  // 0
console.log(k);  // 0

「i--」では変数kに代入した後に減算しています。ですからkの値は「1」となります。

「--i」では減算した後に変数kに代入しています。ですからkの値は「0」となります。

デクリメント演算子を使う時も、同時に変数に代入する場合は注意が必要です。

JavaScript入門