減算演算子 (-)
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> |