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;