文系人間がエンジニアを目指すブログ

大学の文系学部を卒業した私が、ソフトウェアエンジニアになって、一人前を目指す過程を書くブログです。

【Javascript】「++」のような、インクリメント演算子の挙動には注意

インクリメント/デクリメント演算子ってなに?

JSのちょっと面白い挙動を勉強したので、備忘録も兼ねて書きます。

今回取り扱うのは、「インクリメント演算子」と「デクリメント演算子」というやつです。

x = ++x;
y = --y;

こんなやつ。

「++」がインクリメント演算子で、「--」がデクリメント演算子です。

こいつらが何をしているかというと、

x = x + 1;
y = y -1;

このように、変数自身に1を足したり引いたりしてくれています。

「++」を変数の前に置く(前置演算)のと、後ろに置く(後置演算)ので挙動が変わる

この演算子の注意点は、「置く場所を気をつけろ」ということです。

実は、インクリメント/デクリメント演算子は、変数の前にも後ろにも置くことができます。

それぞれ挙動が異なるので、注意が必要です。

前に置く場合の挙動(前置演算)

var a = 1;
var b = ++a;

console.log(a);
=>2

console.log(b);
=>2

変数a, b共に1足されていることがわかります。

「++」を変数の前に置くと、「変数aをインクリメントしてから、変数bに代入する」という挙動になります。

だから、どっちも2になっているわけですね。

後ろに置く場合の挙動(後置演算)

var a = 1;
var b = a++;

console.log(a);
=>2

console.log(b);
=>1

今度は変数bの中身が1のままで出力されました。

「++」を後ろに置くと、「変数aを変数bに代入してから変数aをインクリメントする」という挙動になります。

気をつけましょう。

参考図書

勉強に使ってるのがこの本。

Kindle版が見やすくなってておすすめです。

画像ベタ張りじゃなくて、ちゃんとKindle用にフォーマットされてて使いやすいです。