JavaScript 运算符优先级

运算符优先级确定彼此之间解析运算符的方式。

具有较高优先级的运算符将成为具有较低优先级的运算符的操作数。

在下面的示例中,乘法的优先级高于加法,这决定了运算的结果。

// 首先将3乘以5,然后加10
var x = 10 + 3 * 5;

相反,如果我们想首先运行加法运算,则应将其分组在括号中,该括号始终具有最高优先级。

// 首先将10和3相加,然后乘以5
var x = (10 + 3) * 5;

使用括号时,首先要计算括号内的运算。

当许多运算具有相同的优先级(例如加法和减法)时,它们是从左到右计算的:

var x = 10 + 3 - 5;

JavaScript的结合性

表达式求值也受操作符结合性的影响。

结合性是指整个表达式求值的方向(从右到左或从左到右)。

如果一个表达式中出现两个或多个具有相同优先级的操作符,那么将首先计算哪个操作符?算子结合性回答了这个问题。

请参考下表以解决JavaScript中的任何关联或优先级问题

运算符 使用描述 运算符结合 运算符优先级
() 方法/功能调用,分组 左到右 最高- 1
[] 阵列存取 左到右 1
. 对象属性访问 左到右 1
++ 自增 右到左 2
-- 自减 右到左 2
- 减法 右到左 2
! 逻辑非 右到左 2
~ 按位非 右到左 2
delete 删除数组值或对象属性 右到左 2
new 创建一个对象 右到左 2
typeof 返回数据类型 右到左 2
void 不指定要返回的值 右到左 2
/ 除法 左到右 3
* 乘法 左到右 3
% 求模 左到右 3
+ 加法 左到右 4
+ 字符串拼接 左到右 4
- 减法 左到右 4
>> 按位右移 左到右 5
<< 按位左移 左到右 5
>, >= 大于,大于或等于 左到右 6
<, <= 小于,小于或等于 左到右 6
== 相等 左到右 7
!= 不等 左到右 7
=== 一致/严格相等(相同的数据类型) 左到右 7
!== 不一致/严格不相等(不相同的数据类型) 左到右 7
& 按位与 左到右 8
^ 按位异或 左到右 9
| 按位或 左到右 10
&& 逻辑与 左到右 11
|| 逻辑或 左到右 12
?: 条件分支 左到右 13
= 赋值 右到左 14
*=, /=, %=, +=,, -=, <<=, >>=, >>>=, &=, ^=, |= 根据前面的运算符进行分配 右到左 14
, 多重评估 左到右 最低:15
评论
列表