📅  最后修改于: 2023-12-03 15:41:54.588000             🧑  作者: Mango
在 JavaScript 中,不同的运算符具有不同的优先级,优先级高的先执行,优先级低的后执行。了解运算符的优先级可以帮助你写出更加清晰和正确的代码。
下面是 JavaScript 中运算符的优先级表,从高到低排列:
| 优先级 | 运算符 | 描述 |
| ------ | ------------------------------- | ------------------------------------------------------ |
| 1 | 小括号 | 分组表达式 |
| 2 | .
、[]
、()``new
| 成员访问、函数调用、创建对象实例 |
| 3 | !
、~
、+
、-
、++
、--
| 一元运算符 |
| 4 | *
、/
、%
| 乘法、除法、取模 |
| 5 | +
、-
| 加法、减法 |
| 6 | <<
、>>
、>>>
| 位运算 |
| 7 | <
、<=
、>
、>=
| 关系运算符 |
| 8 | ==
、!=
、===
、!==
| 相等运算符 |
| 9 | &
| 位“与”运算 |
| 10 | ^
| 位“异或”运算 |
| 11 | |
| 位“或”运算 |
| 12 | &&
| 逻辑“与”运算 |
| 13 | ||
| 逻辑“或”运算 |
| 14 | ? ... :
| 条件运算符 |
| 15 | =
、+=
、-=
、*=
、/=
| 赋值运算符 |
| 16 | ,
| 逗号运算符,多个表达式连续执行,返回最后一个表达式的值 |
下面是一些使用不同运算符的示例,演示它们的优先级:
// 小括号
var result = (2 + 3) * 4; // 20
// 成员访问、函数调用、创建对象实例
var obj = {
name: 'Jack',
age: 27
};
var name = obj.name; // 'Jack'
var age = obj['age']; // 27
function Person(name, age) {
this.name = name;
this.age = age;
}
var person = new Person('Tom', 30);
// 一元运算符
var num1 = 5;
var num2 = ++num1; // num1 先加 1,再赋值给 num2,num2 的值为 6
// 乘法、除法、取模
var num3 = 10 * 2 / 5 % 3; // 1
// 加法、减法
var num4 = 12 + 3 - 5; // 10
// 位运算
var num5 = 8 << 2 | 2 >> 1; // 34
// 关系运算符
var bool1 = 5 > 3; // true
// 相等运算符
var bool2 = 5 === '5'; // false
// 位“与”运算
var num6 = 5 & 3; // 1
// 逻辑“与”运算
var bool3 = true && false; // false
// 条件运算符
var num7 = 5 > 3 ? 10 : 20; // 10
// 赋值运算符
var num8 = 10;
num8 += 5; // num8 的值为 15
// 逗号运算符
var num9, num10;
num9 = 10, num10 = 20, num9 + num10; // 30
了解 JavaScript 运算符的优先级可以让你更好地控制代码的执行顺序。在使用运算符时,建议使用小括号来明确优先级,以避免出现逻辑错误。