返回

JavaScript 运算符优先级解析,还记得吗?

前端

前言

在 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 的优先级相同,并且都是从左到右结合。这意味着在表达式中,这几个运算符的执行顺序是按照从左到右的顺序。
  • 算术运算符 +, -, *, /, % 的优先级相同,并且都是从左到右结合。这意味着在表达式中,这几个运算符的执行顺序是按照从左到右的顺序。

练习题

以下是一些练习题,可以帮助您巩固对运算符优先级的理解:

  1. 2 + 3 * 4 - 1 的结果是多少?
  2. 1 && 0 || 1 的结果是多少?
  3. a = b + c * d 等于 a = (b + (c * d)) 吗?
  4. !true && false || true 的结果是多少?
  5. 10 % 3 + 2 * 4 的结果是多少?

总结

运算符优先级是 JavaScript 中一个重要的概念。理解运算符优先级可以帮助您编写出更清晰、更易读的代码。希望本文能对您理解运算符优先级有所帮助。