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 つ以上ある場合は、結合方向によって実行順序が決まる。