编辑这个页面须要登录或更高权限!

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

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册