javascript中的运算符有:
赋值运算符(Assignment operators):=、+= 等
比较运算符(Comparison operators):===、>、<等
算数运算符(Arithmetic operators):+、-、++、–等
位运算符(Bitwise operators):a & b、a << b
逻辑运算符(Logical operators):&&、||
字符串运算符(String operators):+
条件(三元)运算符(Conditional operator):“? :”
逗号运算符(Comma operator):,
一元运算符(Unary operators):delete、void、typeof 和关系的差别就是 只需要一个操作数
关系运算符(Relational operator):in、instanceof。
经测试,“+” 字符串运算符和算术运算符的优先级是一样的。字符串运算符 大于 比较运算符。
1. 总体优先级
首先和日常算术一样*/大于+-,其次由于运算符过多并且不能以运算符的类别区分(如 逻辑! 高于 算术+-)优先级,很多时候复杂的表达式往往无法确定优先级,要使用(),()的优先级是最高的。
总体优先级如下:
一元运算符 delete void typeof
>
算数运算符 + - ++ –
>
位运算符 a & b a << b
>
比较运算符 === > <
==
关系运算符 in instanceof
>
逻辑运算符 (&& > ||)
>
条件(三元)运算符 ?:
>
赋值运算符 = +=
>
逗号运算符 ,
2. 运算符的优先级(全)
对于运算符的优先级有下表汇总。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_Operators
0000 1000
1111 0111
1111 1000