不确定下面表达式的运算顺序?
a>b?c:d+e
a&&b==c
看看下表就清楚了,下表按优先级从最高到最低的列出,具有相同优先级按从左至右的顺序求值.
运算符 | 描述 |
. [] () | 字段访问、数组下标、函数调用以及表达式分组 |
++ -- - ~ ! delete new typeof void | 一元运算符、返回数据类型、对象创建、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串连接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、严格相等、非严格相等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件 |
= oP= | 赋值、运算赋值 |
, | 多重求值 |
new Foo().getName(); ----> ( new Foo() ).getName();
new new Foo().getName(); ----> new [ ( new Foo()).getName() ];