在JavaScript中,运算符的优先级决定了表达式中各个部分的计算顺序。理解运算符的优先级对于编写准确、可预测的代码至关重要。以下是JavaScript中运算符的优先级,从高到低排列:
-
一元运算符:
- 递增/递减:
++
、--
(作为前缀或后缀) - 一元加/减:
+
、-
- 逻辑非:
!
- 按位非:
~
- 类型运算符:
typeof
、void
、delete
await
(仅在async
函数内部)
- 递增/递减:
-
乘性运算符:
- 乘法:
*
- 除法:
/
- 取模:
%
- 乘法:
-
加性运算符:
- 加法:
+
- 减法:
-
- 加法:
-
位移运算符:
- 左移:
<<
- 右移:
>>
- 无符号右移:
>>>
- 左移:
-
关系运算符:
- 小于:
<
- 大于:
>
- 小于等于:
<=
- 大于等于:
>=
in
instanceof
- 小于:
-
相等运算符:
- 等于:
==
- 不等于:
!=
- 严格等于:
===
- 严格不等于:
!==
- 等于:
-
按位与运算符:
&
-
按位异或运算符:
^
-
按位或运算符:
|
-
逻辑与运算符:
&&
-
逻辑或运算符:
||
-
条件(三元)运算符:
? :
-
赋值运算符:
- 赋值:
=
- 加等:
+=
- 减等:
-=
- 乘等:
*=
- 除等:
/=
- 取模等:
%=
- 左移等:
<<=
- 右移等:
>>=
- 无符号右移等:
>>>=
- 按位与等:
&=
- 按位异或等:
^=
- 按位或等:
|=
- 展开运算符(用于数组或对象):
...
(这不是一个传统的赋值运算符,但在某些上下文中,如数组或对象的解构赋值中,它的行为类似于赋值)
- 赋值:
-
逗号运算符:
,
(用于分隔多个表达式,返回最后一个表达式的值)
请注意,虽然这里列出了大部分常用的运算符,但JavaScript还在不断发展,可能会引入新的运算符或修改现有运算符的行为。因此,建议定期查阅最新的JavaScript文档或规范以获取最准确的信息。
此外,当表达式涉及多个不同优先级的运算符时,可以使用括号()
来明确指定计算顺序,从而提高代码的可读性和可维护性。