運算子優先順序

更新:2007 年 11 月

運算子優先順序 (Operator Precedence) 是 JScript 中的一組規則,當評估運算式時,用來控制編譯器執行作業的順序。擁有較高優先順序的作業會在擁有較低優先順序的作業之前執行。例如,乘法會在加法之前執行。

優先順序圖表

以下表格列出 JScript 運算子,並將它們從最高優先順序排到最低優先順序。

優先順序

評估順序

運算子

說明

15

由左至右

., [], ()

欄位存取、陣列索引、函式呼叫和運算式群組

14

由右至左

++, --, -, ~, !, delete, new, typeof, void

一元運算子、傳回資料型別、物件建立、未定義的值

13

由左至右

*, /, %

乘法、除法、modulo 除法

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)

在前一個運算式中有五個運算子:=、*、()、-、和 +。根據運算子優先順序的規則,它們的評估順序如下:()、-、+、*、=。

  1. 括號內運算式的評估最早發生。在括號內,有一個加法運算子和一個減法運算子。因為這兩個運算子的優先順序相同,所以會由左至右來評估它們。會先做 96 減 3 的運算,結果為 93。然後 93 再加上 45,結果值為 139。

  2. 接下來是乘法。139 乘以數字 78,結果值為 10764。

  3. 最後進行指派。指派數字 10764 給 z。

請參閱

概念

運算子摘要

其他資源

JScript 運算子