JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具备较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。
下表按从最高到最低的优先级列出JavaScript运算符。具备相同优先级的运算符按从左至右的顺序求值。数组
运算符 | 描述 |
. [] () | 字段访问、数组下标、函数调用以及表达式分组 |
++ -- - ~ ! delete new typeof void | 一元运算符、返回数据类型、对象建立、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串链接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、严格相等、非严格相等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件 |
= oP= | 赋值、运算赋值 |
, | 多重求值 |
圆括号可用来改变运算符优先级所决定的求值顺序。这意味着圆括号中的表达式应在其用于表达式的其他部分以前所有被求值。函数
在该表达式中有五个运算符: =, *, (), +, 以及另外一个 +。根据运算符优先级的规则,它们将按下面的顺序求值: (), +, +, *, =。spa
首先对圆括号内的表达式求值。圆括号中有两个加法运算符。由于两个加法运算符具备相同的优先级,从左到右求值。先将 96 和 3 相加,而后将其和与 45 相加,获得的结果为 144。
而后是乘法运算。78 乘以 144,获得结果为 11232。
A最后是赋值运算。将 11232 赋给 z。code
===操做符: 要是两个值类型不一样,返回false 要是两个值都是number类型,而且数值相同,返回true 要是两个值都是stirng,而且两个值的String内容相同,返回true 要是两个值都是true或者都是false,返回true 要是两个值都是指向相同的Object,Arraya或者function,返回true 要是两个值都是null或者都是undefined,返回true ==操做符: 若是两个值具备相同类型,会进行===比较,返回===的比较值 若是两个值不具备相同类型,也有可能返回true 若是一个值是null另外一个值是undefined,返回true 若是一个值是string另个是number,会把string转换成number再进行比较 若是一个值是true,会把它转成1再比较,false会转成0 若是一个值是Object,另外一个是number或者string,会把Object利用 valueOf()或者toString()转换成原始类型再进行比较对象