优先级排序从上到下
()(圆括号)
.(成员访问)
[] (需计算的成员访问)
new (带参数列表)
foo() (函数调用)
new (无参数列表)
a++(后置递增操作符)
a-- (后置递减操作符)
!(逻辑非)
~ (按位非)
+ (一元加操作符)
- (一元减操作符)
++a(前置递增操作符)
--a(前置递减操作符)
typeof (判断基本类型)
void (对给定的表达式进行求值,然后返回uundefined)
delete (删除对象的某个属性)
** (幂运算)
* (乘法)
/ (除法)
% (取模)
+ (加法)
- (减法)
<< (按位左移)
>> (按位右移)
>>> (无符号右移)
< (小于)
> (小于等于)
<= (大于)
>= (大于等于)
in (指定的属性存在于指定的对象中,则in运算符会返回true)
instanceof (判断引用类型)
== (等号)
!= (非等号)
=== (全等)
!== (非全等)
& (按位与)
^ (按位异或)
| (按位或)
&& (逻辑与)
|| (逻辑或)
? : (条件运算符,三目运算符)
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|= (赋值)
yield (用来暂停和恢复一个生成器函数)
yield* (可以把需要yield的值委托给另外一个生成器或者其他任意的可迭代对象。)
... (展开运算符)
, (逗号)
PS
递增递减操作符与一元加减操作对任何值都适用。
对于String类型的数据,会先进行Number()操作,将它变成数字值,在进行加一减一操作,如果String为'abc'这种,则返回NaN。如果为'1',这返回数字1。
如果是布尔值,false转换为0,true转换为1。
如果是对象,将会先进行valueof()方法,以取到一个可用来操作的值,然后对该值进行上述的操作,如果结果是NaN,则调用toString()方法后再应用上述规则。对象变量变成数值变量。