更新:2007 年 11 月
运算符优先级是 JScript 中的一套规则,用于控制编译器计算表达式时执行运算的顺序。先执行具有较高优先级的运算,然后执行较低优先级的运算。例如,先执行相乘,再执行相加。
优先级表
下表列出了 JScript 运算符,并按优先级顺序从高到低排列。
| 优先级 | 计算顺序 | 运算符 | 说明 | 
|---|---|---|---|
| 15 | 从左到右 | ., [], () | 字段访问、数组索引、函数调用和表达式分组 | 
| 14 | 从右到左 | ++, --, -, ~, !, delete, new, typeof, void | 一元运算符、返回数据类型、对象创建、未定义的值 | 
| 13 | 从左到右 | *, /, % | 相乘、相除、求余数 | 
| 12 | 从左到右 | +, - | 相加、字符串串联、相减 | 
| 11 | 从左到右 | <<, >>, >>> | 移位 | 
| 10 | 从左到右 | <, <=, >, >=, instanceof | 小于、小于或等于、大于、大于或等于、是否为特定类的实例 | 
| 9 | 从左到右 | ==, !=, ===, !== | 相等、不相等、全等,不全等 | 
| 8 | 从左到右 | & | 按位“与” | 
| 7 | 从左到右 | ^ | 按位“异或” | 
| 6 | 从左到右 | | | 按位“或” | 
| 5 | 从左到右 | && | 逻辑“与” | 
| 4 | 从左到右 | || | 逻辑“或” | 
| 3 | 从右到左 | ?: | 条件 | 
| 2 | 从右到左 | =, OP= | 赋值、复合赋值 | 
| 1 | 从左到右 | ,(逗号) | 多个计算 | 
表达式中的圆括号改变由运算符优先级确定的计算顺序。这就是说,先计算完圆括号内的表达式,然后再将它的值用于表达式的其余部分。
例如:
z = 78 * (96 - 3 + 45)
在上面的表达式中有 5 个运算符:=、*、()、- 和 +。按照运算符优先级规则,按以下顺序计算:()、-、+、*、=。
- 最先计算圆括号内的表达式。在圆括号内,有加法和减法运算符。这两个运算符的优先级相同,按从左向右的顺序计算它们。先从 96 减去数字 3,结果是 93。然后将数字 45 与 93 相加,得出的值是 138。 
- 然后计算相乘。用数字 138 乘以数字 78,得出的值为 10764。 
- 最后进行赋值。将数字 10764 赋给 z。