算数において、掛け算を、足し算よりも優先するように、JavaScriptの演算子にも、優先順位がある。優先したい演算を()
で括ることで、優先順位を変更することもできる。優先順位が同じときは、結合規則(左から評価するか、右から評価するか)に基づき優先順位が決まる。
優先順位一覧表
優先順位 | 演算子 | 結合規則 | 演算子タイプ |
---|---|---|---|
1 | . |
左 | メンバー演算子 |
[] |
左 | メンバー演算子 | |
new |
右 | new演算子 | |
2 | () |
左 | 関数呼び出し演算子、グループ化演算子 |
3 | ++ |
インクリメント演算子(加算子) | |
-- |
デクリメント演算子(減算子) | ||
4 | ! |
右 | 論理否定演算子 |
~ |
右 | ビット論理否定演算子 | |
+ |
右 | 単項プラス演算子 | |
- |
右 | 単項マイナス演算子 | |
typeof |
右 | typeof演算子 | |
void |
右 | void演算子 | |
delete |
右 | delete演算子 | |
5 | * |
左 | 乗算演算子(掛け算の算術演算子) |
/ |
左 | 除算演算子(割り算の算術演算子) | |
% |
左 | 剰余演算子(除算の余りを求める算術演算子) | |
6 | + |
左 | 加算演算子(足し算の算術演算子) |
- |
左 | 減算演算子(引き算の算術演算子) | |
7 | << |
左 | 左シフト演算子 |
>> |
左 | 右シフト演算子 | |
>>> |
左 | 0埋め右シフト演算子 | |
8 | < |
左 | 小なり |
< |
左 | 大なり | |
<= |
左 | 以下(小なりイコール) | |
>= |
左 | 以上(大なりイコール) | |
in |
左 | in演算子 | |
instanceof |
左 | instanceof演算子 | |
9 | == |
左 | 等価演算子 |
=== |
左 | 型も含めて比較する等価演算子 | |
!= |
左 | 不等価演算子 | |
!== |
左 | 型も含めて比較する不等価演算子 | |
10 | & |
左 | ビット論理積演算子 |
11 | ^ |
左 | ビット排他的論理和演算子 |
12 | | |
左 | ビット論理和演算子 |
13 | && |
左 | 論理積演算子 |
14 | || |
左 | 論理和演算子 |
15 | ?: |
右 | 条件演算子(三項演算子) |
16 | yield |
右 | yield演算子 |
17 | = |
右 | 代入演算子 |
+= |
右 | 加算代入演算子 | |
-= |
右 | 減算代入演算子 | |
*= |
右 | 乗算代入演算子 | |
/= |
右 | 除算代入演算子 | |
%= |
右 | 剰余代入演算子 | |
<<= |
右 | 左シフト代入演算子 | |
>>= |
右 | 右シフト代入演算子 | |
>>>= |
右 | 0埋め右シフト代入演算子 | |
&= |
右 | ビット論理積代入演算子 | |
^= |
右 | ビット排他的論理和代入演算子 | |
|= |
右 | ビット論理和代入演算子 | |
18 | , |
左 | カンマ演算子 |