JavaScript 速習チュートリアル

JavaScript の算術演算

1. JavaScript 算術演算子

算術演算子(アリスメティック・オペレーター)は、数値(リテラルまたはバリアブル)に対して算術計算を実行します。

オペレーター説明
+アディション(加算)
-サブトラクション(減算)
*マルチプリケーション(乗算)
**エクスポネンシエーション(べき乗) ※ES2016で導入
/ディビジョン(除算)
%モジュラス(剰余:割り算の余り)
++インクリメント(1加算)
--デクリメント(1減算)

1.1 算術演算

典型的な算術演算は、2つの数値に対して行われます。
その2つの数値は、リテラルである場合もあれば:

コード例

let x = 100 + 50;

バリアブル(変数)である場合もあります:

コード例

let x = a + b;

あるいは、エクスプレッション(式)である場合もあります:

コード例

let x = (100 + 50) * a;

2. オペレーターとオペランド

算術演算における数値のことをオペランドと呼びます。
また、2つのオペランドの間で行われる操作をオペレーター(演算子)が定義します。

オペランドオペレーターオペランド
100+50

2.1 アディション(加算)

アディション・オペレーター(+)は数値を加算します。

コード例

let x = 5;
let y = 2;
let z = x + y;

2.2 サブトラクション(減算)

サブトラクション・オペレーター(-)は数値を減算します。

コード例

let x = 5;
let y = 2;
let z = x - y;

2.3 マルチプリケーション(乗算)

マルチプリケーション・オペレーター(*)は数値を乗算します。

コード例

let x = 5;
let y = 2;
let z = x * y;

2.4 ディビジョン(除算)

ディビジョン・オペレーター(/)は数値を除算します。

コード例

let x = 5;
let y = 2;
let z = x / y;

2.5 剰余(モジュラス)

モジュラス・オペレーター(%)は、除算した後の余り(剰余)を返します。

コード例

let x = 5;
let y = 2;
let z = x % y;

算術において、2つの整数の除算は「商」と「余り」を生成します。数学的に、モジュロ演算の結果は算術除算の余りとなります。

2.6 インクリメント

インクリメント・オペレーター(++)は数値を1増やします。

コード例

let x = 5;
x++;
let z = x; // zは6になります

2.7 デクリメント

デクリメント・オペレーター(--)は数値を1減らします。

コード例

let x = 5;
x--;
let z = x; // zは4になります

2.8 エクスポネンシエーション(べき乗)

エクスポネンシエーション・オペレーター)は、最初のオペランドを2番目のオペランド**の数だけ累乗します。

コード例

let x = 5;
let z = x ** 2; // 5の2乗なので25になります

x ** yMath.pow(x, y) と同じ結果を生成します:

コード例

let x = 5;
let z = Math.pow(x, 2);

3. 演算子の優先順位 (Operator Precedence)

演算子の優先順位とは、算術エクスプレッションにおいて演算が実行される順序を定義したものです。

コード例

let x = 100 + 50 * 3;

上記の例の結果は、150 * 3 と同じ(450)でしょうか、それとも 100 + 150 と同じ(250)でしょうか?
加算と乗算、どちらが先に実行されるのでしょうか。

学校で習う伝統的な数学と同様に、乗算が先に実行されます。
乗算(*)や除算(/)は、加算(+)や減算(-)よりも高い優先順位を持っています。

そして(これも数学と同様に)、丸括弧を使用することでこの優先順位を変更することができます。
丸括弧を使用すると、括弧内の演算が最優先で計算されます:

コード例

let x = (100 + 50) * 3; // 括弧内が先に計算され、150 * 3 = 450 になります

同じ優先順位を持つ多くの演算(加算と減算、あるいは乗算と除算など)が並んでいる場合、それらは左から右へと順番に計算されます:

コード例

let x = 100 + 50 - 3; // (100 + 50) - 3 = 147

コード例

let x = 100 / 50 * 3; // (100 / 50) * 3 = 6