インクリメント演算子 (++)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
インクリメント演算子 (++
) は、オペランドをインクリメント(1 を加算)し、演算子が置かれている場所次第で、インクリメントの前または後の値を返します。
試してみましょう
let x = 3;
const y = x++;
console.log(`x:${x}, y:${y}`);
// 予想される結果: "x:4, y:3"
let a = 3;
const b = ++a;
console.log(`a:${a}, b:${b}`);
// 予想される結果: "a:4, b:4"
構文
js
x++
++x
解説
++
演算子は、数値と長整数の 2 種類のオペランドに対してオーバーロードされています。最初にオペランドを数値の値に変換し、その型を検査します。オペランドが長整数になった場合、長整数の加算を実行し、そうでない場合は数値の加算を実行します。
後置演算子として使用した場合(演算子がオペランドの後ろにあった場合、例えば x++
)、インクリメント演算子は減算を行い、減算前の値を返します。
接頭辞として使用され、演算子がオペランドの前に置かれた場合(例えば ++x
)、減算演算子は減算を行い、減算後の値を返します。
インクリメント演算子は、参照(変数やオブジェクトのプロパティ、つまり有効な代入対象であるオペランドにのみ適用することができます。 ++x
自体は値として評価され、参照ではないため、複数のインクリメント演算子を連結することはできません。
js
++(++x); // SyntaxError: Invalid left-hand side expression in prefix operation
例
>後置インクリメント
js
let x = 3;
const y = x++;
// x は 4、y は 3
let x2 = 3n;
const y2 = x2++;
// x2 は 4n、y2 は 3n
前置インクリメント
js
let x = 3;
const y = ++x;
// x は 4; y = 4
let x2 = 3n;
const y2 = --x2;
// x2 は 4n; y2 は 4n
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-postfix-increment-operator> |
ブラウザーの互換性
Loading…