JavaScript 入門 | 演算子 (operator) | 算術演算子 (arithmetic)

算術演算子 (arithmetic operator)

算術演算子は四則演算を扱う、最も基本的でよく使われる演算子である。
算術演算子はいずれも 2 つのオペランドを持つ二項演算子であり、オペランドの結合方向は左から右である。

算術演算子 説明
+ 左オペランドの値に右オペランドの値を加える。
- 左オペランドの値から右オペランドの値を引く。
* 左オペランドの値に右オペランドの値を掛ける。
/ 左オペランドの値を右オペランドの値で割る。
% 左オペランドの値を右オペランドの値で割り、その余りを返す。
var x = 10, y = 4;
document.write(x + y + "<br>"); // 14
document.write(x - y + "<br>"); // 6
document.write(x * y + "<br>"); // 40
document.write(x / y + "<br>"); // 2.5
document.write(x % y);          // 2

JavaScript 演算子の優先順位表

JavaScript における演算子の優先順位と結合方向は次のとおりである。

優先順位 演算子 説明 結合方向
1 () グループ化 (括弧) -
2 . メンバーアクセス 左から右
new 引数ありのオブジェクト作成 -
3 () 関数呼び出し 左から右
new 引数なしのオブジェクト作成 右から左
4 ++ 後置インクリメント演算子 -
後置デクリメント演算子 -
5 ! 論理 NOT 演算子 右から左
~ ビット NOT 演算子 右から左
+ 正符号 (単項演算子) 右から左
- 負符号 (単項演算子) 右から左
++ 前置インクリメント演算子 右から左
前置デクリメント演算子 右から左
typeof 型を返す 右から左
void undefined を返す 右から左
delete プロパティの削除 右から左
6 ** べき乗演算子 右から左
* 乗算演算子 左から右
/ 除算演算子 左から右
% 剰余演算子 左から右
7 + 加算演算子 (二項演算子) 左から右
- 減算演算子 (二項演算子) 左から右
8 « ビット左シフト演算子 左から右
» 符号ビットを拡張しながらビット右シフト 左から右
»> 符号ビットを拡張しないビット右シフト 左から右
9 < 関係演算子 (より小さい) 左から右
<= 関係演算子 (以下) 左から右
> 関係演算子 (より大きい) 左から右
>= 関係演算子 (以上) 左から右
instanceof インスタンスかどうかを判定 左から右
10 == 等価演算子 左から右
=== 厳密等価演算子 左から右
!= 不等価演算子 左から右
!== 厳密不等価演算子 左から右
11 & ビット AND 演算子 左から右
12 ^ ビット XOR 演算子 左から右
13 | ビット OR 演算子 左から右
14 && 論理 AND 演算子 左から右
15 || 論理 OR 演算子 左から右
16 ? : 三項演算子 右から左
17 = 代入演算子 (=, +=, -=, *=, /=, %=, «=, »=, »>=, &=, ^=, |=) 右から左
18 展開 -
19 , カンマ演算子 左から右

上の表の順に、優先順位が高い演算子から先に実行される。
また、同じ優先順位を持つ演算子が 2 つ以上ある場合は、結合方向によって実行順序が決まる。