运算符

编辑

运算符是在脚本中评估值的最基本操作。表达式是一到多个连续的操作。优先级是指相对于另一个运算符,运算符将被评估的顺序。结合性是在表达式中评估特定运算符的方向。下表列出了所有可用的运算符

运算符

类别

符号

优先级

结合性

优先级

常规

()

0

左 → 右

方法调用

引用

. ()

1

左 → 右

字段访问

引用

.

1

左 → 右

空安全

引用

?.

1

左 → 右

函数调用

常规

()

1

左 → 右

数组初始化

数组

[] {}

1

左 → 右

数组访问

数组

[]

1

左 → 右

数组长度

数组

.

1

左 → 右

列表初始化

引用

[]

1

左 → 右

列表访问

引用

[]

1

左 → 右

映射初始化

引用

[:]

1

左 → 右

映射访问

引用

[]

1

左 → 右

后置递增

数值

++

1

左 → 右

后置递减

数值

 — 

1

左 → 右

前置递增

数值

++

2

右 → 左

前置递减

数值

 — 

2

右 → 左

一元正号

数值

+

2

右 → 左

一元负号

数值

-

2

右 → 左

布尔非

布尔

!

2

右 → 左

按位非

数值

~

2

右 → 左

类型转换

常规

()

3

右 → 左

新建实例

引用

new ()

3

右 → 左

新建数组

数组

new []

3

右 → 左

乘法

数值

*

4

左 → 右

除法

数值

/

4

左 → 右

取余

数值

%

4

左 → 右

字符串连接

引用

+

5

左 → 右

加法

数值

+

5

左 → 右

减法

数值

-

5

左 → 右

左移

数值

<<

6

左 → 右

右移

数值

>>

6

左 → 右

无符号右移

数值

>>>

6

左 → 右

大于

布尔

>

7

左 → 右

大于等于

布尔

>=

7

左 → 右

小于

布尔

<

7

左 → 右

小于等于

布尔

<=

7

左 → 右

instanceof

布尔

instanceof

8

左 → 右

相等等于

布尔

==

9

左 → 右

相等不等于

布尔

!=

9

左 → 右

同一性等于

布尔

===

9

左 → 右

同一性不等于

布尔

!==

9

左 → 右

按位与

数值

&

10

左 → 右

布尔异或

布尔

^

11

左 → 右

按位异或

数值

^

11

左 → 右

按位或

数值

|

12

左 → 右

布尔与

布尔

&&

13

左 → 右

布尔或

布尔

||

14

左 → 右

条件

常规

? :

15

右 → 左

Elvis 运算符

常规

?:

16

右 → 左

赋值

常规

=

17

右 → 左

复合赋值

常规

$=

17

右 → 左