演算子の優先順位
更新 : 2007 年 11 月
演算子の優先順位は、式を評価するときにコンパイラが実行する演算の順序を制御する、JScript における規則セットです。優先順位の高い演算は、優先順位の低い演算より先に実行されます。たとえば、乗算は加算より先に実行されます。
優先順位表
次の表では、JScript の演算子を優先順位の高い順に上から並べています。
優先順位 |
評価順序 |
演算子 |
説明 |
---|---|---|---|
15 |
左から右 |
., [], () |
フィールド アクセス、配列のインデックス付け、関数の呼び出し、および式のグループ化 |
14 |
右から左 |
++、--、-、~、!、delete、new、typeof、void |
単項演算子、戻り値の型、オブジェクトの作成、未定義の値 |
13 |
左から右 |
*, /, % |
乗算、除算、剰余 |
12 |
左から右 |
+, - |
加算および文字列の連結、減算 |
11 |
左から右 |
<<, >>, >>> |
ビット シフト |
10 |
左から右 |
<、<=、>、>=、instanceof |
小なり、以下、大なり、以上、instanceof |
9 |
左から右 |
==, !=, ===, !== |
等値、非等値、厳密等価、厳密非等価 |
8 |
左から右 |
& |
ビットごとの AND |
7 |
左から右 |
^ |
ビットごとの XOR |
6 |
左から右 |
| |
ビットごとの OR |
5 |
左から右 |
&& |
論理 AND |
4 |
左から右 |
|| |
論理 OR |
3 |
右から左 |
?: |
条件 |
2 |
右から左 |
=, OP= |
代入、複合代入 |
1 |
左から右 |
, (コンマ) |
複数の評価 |
式でかっこを使用すると、演算子の優先順位と関係なく、演算の実行順序を変更できます。つまり、かっこの内側の演算は、かっこの外側の演算よりも先に実行されます。ただし、かっこの内側の演算子には通常の優先順位が適用されます。
次に例を示します。
z = 78 * (96 - 3 + 45)
この式には、=、*、()、-、および + の 5 つの演算子があります。演算の優先順位の規則に従うと、これらの演算子は ()、-、+、*、= の順に実行されます。
最初に、かっこの内側の演算子が評価され、演算が実行されます。かっこ内には、加算演算子と減算演算子があります。どちらの演算子も優先順位が同じなので、左から右の順に演算が実行されます。まず 96 から 3 を引いて、結果は 93 になります。次に、93 に 45 を足して、結果は 139 になります。
次に、かっこの外側の乗算が実行されます。78 に 139 が掛けられ、演算結果は 10764 になります。
最後に代入が実行されます。z に 10764 が代入されます。