返回
JavaScript 运算符优先级解析,还记得吗?
前端
2024-01-10 22:45:15
前言
在 JavaScript 中,运算符是用来对操作数进行操作的符号。JavaScript 中有许多运算符,每种运算符都有自己的优先级。运算符的优先级决定了在表达式中运算符的执行顺序。
运算符优先级表
JavaScript 中的运算符优先级表如下:
运算符 | 优先级 | 结合性 |
---|---|---|
() |
最高 | 无 |
++ , -- |
高 | 右结合 |
! , ~ , - , typeof , void , delete |
高 | 右结合 |
* , / , % |
中 | 左结合 |
+ , - |
中 | 左结合 |
< , > , <= , >= , instanceof , in |
低 | 左结合 |
== , != , === , !== |
低 | 左结合 |
& |
低 | 左结合 |
^ |
低 | 左结合 |
` | ` | 低 |
&& |
低 | 左结合 |
` | ` | |
? : |
低 | 右结合 |
= |
最低 | 右结合 |
运算符优先级示例
以下是一些运算符优先级的示例:
2 + 3 * 4
等于20
,因为乘法运算符*
的优先级高于加法运算符+
。1 && 0 || 1
等于1
,因为逻辑运算符&&
的优先级高于逻辑运算符||
。a = b + c * d
等于a = (b + (c * d))
,因为赋值运算符=
的优先级最低。
运算符优先级容易混淆的点
在 JavaScript 中,有一些运算符的优先级很容易混淆。以下是一些容易混淆的点:
- 逻辑运算符
&&
和||
的优先级相同,并且都是从左到右结合。这意味着在表达式中,这两个运算符的执行顺序是按照从左到右的顺序。 - 关系运算符
<
,>
,<=
,>=
,instanceof
,in
的优先级相同,并且都是从左到右结合。这意味着在表达式中,这几个运算符的执行顺序是按照从左到右的顺序。 - 算术运算符
+
,-
,*
,/
,%
的优先级相同,并且都是从左到右结合。这意味着在表达式中,这几个运算符的执行顺序是按照从左到右的顺序。
练习题
以下是一些练习题,可以帮助您巩固对运算符优先级的理解:
2 + 3 * 4 - 1
的结果是多少?1 && 0 || 1
的结果是多少?a = b + c * d
等于a = (b + (c * d))
吗?!true && false || true
的结果是多少?10 % 3 + 2 * 4
的结果是多少?
总结
运算符优先级是 JavaScript 中一个重要的概念。理解运算符优先级可以帮助您编写出更清晰、更易读的代码。希望本文能对您理解运算符优先级有所帮助。