运算符优先级
运算符优先级是 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。