📜  运算符优先级javascript(1)

📅  最后修改于: 2023-12-03 15:41:54.588000             🧑  作者: Mango

JavaScript 运算符优先级

在 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 运算符的优先级可以让你更好地控制代码的执行顺序。在使用运算符时,建议使用小括号来明确优先级,以避免出现逻辑错误。