JavaScript 算術演算
JavaScriptの算術演算子は、数値(リテラルまたは変数)に対して算術演算を行います。
演算子 | 説明 |
---|---|
+ | 加算 |
– | 減算 |
* | 乗算 |
** | 指数化(ES2016) |
/ | 除算 |
% | 剰余(除算の余り) |
++ | インクリメント |
— | デクリメント |
算術演算
典型的な算術演算は、通常2つの数値に対して行われます。
数値はリテラルである場合もあります:
let x = 100 + 50;
また、変数である場合もあります:
let x = a + b;
また、式で演算することもできます:
let x = (100 + 50) * a;
演算子とオペランド
算術演算における数値は、オペランドと呼ばれます。オペランド間で行われる操作は演算子によって定義されます。
例えば、次のようになります:
100 + 50
この場合、100と50がオペランドであり、+が演算子です。
加算
加算演算子(+)は数値を加算します:
let x = 5;
let y = 2;
let z = x + y;
減算
減算演算子(-)は数値を減算します:
let x = 5;
let y = 2;
let z = x - y;
乗算
乗算演算子(*)は数値を乗算します:
let x = 5;
let y = 2;
let z = x * y;
除算
除算演算子(/)は数値を除算します:
let x = 5;
let y = 2;
let z = x / y;
剰余
剰余演算子(%)は、除算の余りを返します:
let x = 5;
let y = 2;
let z = x % y;
算術演算において、整数の除算は商と余りを返します。
数学的には、モジュロ演算の結果は算術的な除算の余りです。
インクリメント
インクリメント演算子(++)は数値を増加させます:
let x = 5;
x++;
let z = x;
デクリメント
デクリメント演算子(–)は数値を減少させます:
let x = 5;
x--;
let z = x;
指数化
指数化演算子(**)は、第1オペランドを第2オペランドの累乗にします:
let x = 5;
let z = x ** 2;
x ** y は、Math.pow(x,y) と同じ結果を返します:
let x = 5;
let z = Math.pow(x,2);
演算子の優先順位
演算子の優先順位は、算術式で操作が行われる順序を示します。
例えば、次のような演算がある場合:
let x = 100 + 50 * 3;
上記の例の結果は、150 * 3 と同じでしょうか、それとも 100 + 150 と同じでしょうか?
加算か乗算が最初に行われるのでしょうか?
伝統的な学校の数学と同様に、乗算が最初に行われます。
乗算 (*) および除算 (/) は、加算 (+) および減算 (-) よりも優先度が高くなります。
そして(学校の数学と同様に)、括弧を使用することで優先順位を変更することができます。
括弧を使用すると、括弧内の演算が最初に計算されます:
let x = (100 + 50) * 3;
優先順位が同じ演算子が多数存在する場合(加算と減算、または乗算と除算など)、左から右へと計算されます:
例:
let x = 100 + 50 - 3;
let x = 100 / 50 * 3;