返回

JavaScript运算符与优先级:详解与例证

前端


JavaScript是一门灵活多变的编程语言,其提供的丰富运算符集合为开发者提供了多样化的计算与逻辑操作选择。想要驾驭JavaScript的运算符,理解其优先级规则至关重要。本篇博客将为您详细讲解JavaScript中的运算符及其优先级,并通过示例代码加以说明。




JavaScript运算符详解

JavaScript中的运算符种类繁多,涵盖算术运算符、比较运算符、布尔运算符、位运算符、赋值运算符和其他运算符。每种运算符都有其独特的用法和意义。

1. 算术运算符

算术运算符用于执行基本的数学运算。它们包括加(+)、减(-)、乘(*)、除(/)和取模(%)等。以下是一些算术运算符的示例:

console.log(1 + 2); // 3
console.log(5 - 3); // 2
console.log(4 * 6); // 24
console.log(12 / 3); // 4
console.log(7 % 3); // 1

2. 比较运算符

比较运算符用于比较两个值的大小或相等性。它们包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。以下是一些比较运算符的示例:

console.log(1 == 2); // false
console.log(3 != 4); // true
console.log(5 > 2); // true
console.log(6 < 9); // true
console.log(7 >= 7); // true
console.log(8 <= 10); // true

3. 布尔运算符

布尔运算符用于对布尔值(true或false)进行逻辑操作。它们包括逻辑与(&&)、逻辑或(||)和逻辑非(!)等。以下是一些布尔运算符的示例:

console.log(true && true); // true
console.log(true || false); // true
console.log(!false); // true

4. 位运算符

位运算符用于对二进制位进行操作。它们包括位与(&)、位或(|)、位异或(^)和按位取反(~)等。以下是一些位运算符的示例:

console.log(1 & 2); // 0
console.log(3 | 4); // 7
console.log(5 ^ 6); // 3
console.log(~7); // -8

5. 赋值运算符

赋值运算符用于将值赋给变量。它们包括赋值(=)、加等于(+=)、减等于(-=)、乘等于(*=)和除等于(/=)等。以下是一些赋值运算符的示例:

let x = 1;
x += 2; // x 变为 3
x -= 1; // x 变为 2
x *= 3; // x 变为 6
x /= 2; // x 变为 3

6. 其他运算符

JavaScript还提供了一些其他运算符,包括逗号运算符(,)、三元运算符(?)和typeof运算符等。以下是一些其他运算符的示例:

console.log(1, 2, 3); // 1 2 3
console.log(true ? "Yes" : "No"); // "Yes"
console.log(typeof 42); // "number"

JavaScript运算符优先级

运算符的优先级决定了它们执行的顺序。当一个表达式中包含多个运算符时,优先级高的运算符会先执行。JavaScript运算符的优先级从高到低如下:

  1. 括号()
  2. 指数运算^
  3. 一元运算符(+、-、!、~)
  4. 乘法和除法(*、/)
  5. 加法和减法(+、-)
  6. 关系运算符(<、>、<=、>=、==、!=)
  7. 逻辑与(&&)
  8. 逻辑或(||)
  9. 赋值运算符(=、+=、-=、*=、/=、%=、<<=、>>=、>>>=)
  10. 逗号运算符(,)

如果一个表达式中包含多个具有相同优先级的运算符,则从左到右依次执行。例如,以下表达式中,乘法和除法运算符具有相同的优先级,因此它们从左到右依次执行:

console.log(2 * 3 + 4 / 2); // 10

括号可以改变运算符的优先级。括号内的表达式会先执行,然后再执行括号外的表达式。例如,以下表达式中,括号内的乘法运算符先执行,然后再执行括号外的加法运算符:

console.log((2 * 3) + 4 / 2); // 11

总结

JavaScript运算符种类繁多,用途广泛。了解运算符及其优先级规则对于编写高质量的JavaScript代码至关重要。希望本篇博客能够帮助您掌握JavaScript运算符的知识,并将其应用到您的开发实践中。