JavaScript 演算子の優先度と順序
出典: フリー教科書『ウィキブックス(Wikibooks)』
演算子と優先順序 例えば 1 + 3 * 4 の式を計算する場合は、演算は3*4を先に計算するべきである。 そのため、演算子にはそれぞれ優先度が設定されており、同じ式の中では優先度が高い規則ほど優先的に実行される。 JavaScriptでは規格で優先度が設定されており、次の表になっている。
| 優先度 | 演算子 |
|---|---|
| 高 | [], {}, (), . |
| ↑ | new演算子 |
| 関数呼び出し | |
| 引数リスト | |
| 関数式 | |
| !, ~, ++, -- | |
| +(単項), -(単項) | |
| delete演算子, void演算子, typeof演算子 | |
| *, / | |
| +, - | |
| <<, >>, >>> | |
| <, >=, <=, > | |
| ==, !=, ===, !== | |
| & | |
| ^ | |
| | | |
| && | |
| || | |
| ?, : | |
| ↓ | =, +=, -=, *=, /=, %= |
| 低 | ^=, <<=, >>=, in, instanceof |
基本的には、優先度は人間の直感に従うように出来ているが、気をつけなければいけないのはビットシフト演算子(<< , >> , >>>)やビット積、ビット和の演算子である。
これらの演算子は、四則演算子や比較演算子と並べるときに計算順序を間違える事が良くある。