JavaScript 运算符优先级值
值 |
运算符 |
描述 |
实例 |
20 |
( ) |
表达式分组 |
(3 + 4) |
|
|
|
|
19 |
. |
成员 |
person.name |
19 |
[] |
成员 |
person["name"] |
19 |
() |
函数调用 |
myFunction() |
19 |
new |
创建 |
new Date() |
|
|
|
|
17 |
++ |
后缀递增 |
i++ |
17 |
-- |
后缀递减 |
i-- |
|
|
|
|
16 |
++ |
前缀递增 |
++i |
16 |
-- |
前缀递减 |
--i |
16 |
! |
逻辑否 |
!(x==y) |
16 |
typeof |
类型 |
typeof x |
|
|
|
|
15 |
** |
求幂 (ES7) |
10 ** 2 |
|
|
|
|
14 |
* |
乘 |
10 * 5 |
14 |
/ |
除 |
10 / 5 |
14 |
% |
模数除法 |
10 % 5 |
|
|
|
|
13 |
+ |
加 |
10 + 5 |
13 |
- |
减 |
10 - 5 |
|
|
|
|
12 |
<< |
左位移 |
x << 2 |
12 |
>> |
右位移 |
x >> 2 |
12 |
>>> |
右位移(无符号) |
x >>> 2 |
|
|
|
|
11 |
< |
小于 |
x < y |
11 |
<= |
小于或等于 |
x <= y |
11 |
> |
大于 |
x > y |
11 |
>= |
大于或等于 |
x >= y |
11 |
in |
对象中的属性 |
"PI" in Math |
11 |
instanceof |
对象的实例 |
instanceof Array |
|
|
|
|
10 |
== |
相等 |
x == y |
10 |
=== |
严格相等 |
x === y |
10 |
!= |
不相等 |
x != y |
10 |
!== |
严格不相等 |
x !== y |
|
|
|
|
9 |
& |
按位与 |
x & y |
8 |
^ |
按位 XOR |
x ^ y |
7 |
| |
按位或 |
x | y |
6 |
&& |
逻辑与 |
x && y |
5 |
|| |
逻辑否 |
x || y |
4 |
? : |
条件 |
? "Yes" : "No" |
|
|
|
|
3 |
= |
赋值 |
x = y |
3 |
+= |
赋值 |
x += y |
3 |
-= |
赋值 |
x -= y |
3 |
*= |
赋值 |
x *= y |
3 |
%= |
赋值 |
x %= y |
3 |
<<= |
赋值 |
x <<= y |
3 |
>>= |
赋值 |
x >>= y |
3 |
>>>= |
赋值 |
x >>>= y |
3 |
&= |
赋值 |
x &= y |
3 |
^= |
赋值 |
x ^= y |
3 |
|= |
赋值 |
x |= y |
|
|
|
|
2 |
yield |
暂停函数 |
yield x |
1 |
, |
逗号 |
7 , 8 |
运算符 |
描述 |
== |
等于 |
=== |
等值等型 |
!= |
不相等 |
!== |
不等值或不等型 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
? |
三元运算符 |
运算符 |
描述 |
&& |
逻辑与 |
|| |
逻辑或 |
! |
逻辑非 |
运算符 |
描述 |
typeof |
返回变量的类型。 |
instanceof |
返回 true,如果对象是对象类型的实例。 |
运算符 |
描述 |
例子 |
等同于 |
结果 |
十进制 |
& |
与 |
5 & 1 |
0101 & 0001 |
0001 |
1 |
| |
或 |
5 | 1 |
0101 | 0001 |
0101 |
5 |
~ |
非 |
~ 5 |
~0101 |
1010 |
10 |
^ |
异或 |
5 ^ 1 |
0101 ^ 0001 |
0100 |
4 |
<< |
零填充左位移 |
5 << 1 |
0101 << 1 |
1010 |
10 |
>> |
有符号右位移 |
5 >> 1 |
0101 >> 1 |
0010 |
2 |
>>> |
零填充右位移 |
5 >>> 1 |
0101 >>> 1 |
0010 |
2 |
上例使用 4 位无符号的例子。但是 JavaScript 使用 32 位有符号数。
因此,在 JavaScript 中,~ 5 不会返回 10,而是返回 -6。
~00000000000000000000000000000101 将返回 11111111111111111111111111111010。
运算符 |
描述 |
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
取模(余数) |
++ |
递加 |
-- |
递减 |