このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

減算演算子 (-)

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

減算演算子 (-) は 2 つのオペランドの間で減算し、それらの差を生成します。

試してみましょう

console.log(5 - 3);
// 予想される結果: 2

console.log(3.5 - 5);
// 予想される結果: -1.5

console.log(5 - "hello");
// 予想される結果: NaN

console.log(5 - true);
// 予想される結果: 4

構文

js
x - y

解説

- 演算子は、数値と長整数の 2 種類のオペランドに対してオーバーロードされています。まず両オペランドを数値型に変換し、それらの型を検査します。両オペランドが長整数になった場合、長整数の減算を実行します。そうでない場合は数値の減算を実行します。一方のオペランドが長整数になり、もう一方が数値になった場合は、TypeError が発生します。

数値を用いた減算

js
5 - 3; // 2
3 - 5; // -2

その他の長整数でない値は、数値に変換されます。

js
"foo" - 3; // NaN。 "foo" は数値 NaN に変換される
5 - "3"; // 2。 "3" は数値 3 に変換される

長整数を用いた減算

js
2n - 1n; // 1n

減算において、長整数と数値のオペランドを混在させることはできません。

js
2n - 1; // TypeError: Cannot mix BigInt and other types, use explicit conversions
2 - 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions

長整数と長整数以外で減算を行うには、どちらかのオペランドを変換してください。

js
2n - BigInt(1); // 1n
Number(2n) - 1; // 1

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-subtraction-operator-minus

ブラウザーの互換性

関連情報