【前端开发】三. JS运算符

JavaScript 运算符总结

运算符用于对变量和值执行操作。以下是 JavaScript 中常见运算符的分类和说明:


1. 算术运算符

|---------|--------|-----------|------------------------------------------|
| 运算符 | 名称 | 示例 | 说明 |
| + | 加法 | x + y | 数字相加或字符串拼接 |
| - | 减法 | x - y | |
| * | 乘法 | x * y | |
| / | 除法 | x / y | |
| % | 取模 | x % y | 返回除法余数 |
| ** | 指数 | x ** y | x 的 y 次幂(ES2016) |
| ++ | 自增 | x++ / ++x | 增量操作(前后缀) ++在前 先自增再赋值 ++ 在后 先赋值再自增 -- 同理 |
| -- | 自减 | x-- / --x | 减量操作(前后缀) |


2. 赋值运算符

|---------|-----------|--------------|
| 运算符 | 示例 | 等价于 |
| = | x = 5 | |
| += | x += 3 | x = x + 3 |
| -= | x -= 2 | x = x - 2 |
| *= | x *= 4 | x = x * 4 |
| /= | x /= 2 | x = x / 2 |
| %= | x %= 3 | x = x % 3 |
| **= | x **= 2 | x = x ** 2 |


3. 比较运算符

|---------|--------|---------|---------------|
| 运算符 | 名称 | 示例 | 说明 |
| == | 等于 | x == y | 值相等(忽略类型) |
| === | 严格等于 | x === y | 值和类型均相等 |
| != | 不等于 | x != y | 值不相等(忽略类型) |
| !== | 严格不等于 | x !== y | 值或类型不相等 |
| > | 大于 | x > y | |
| < | 小于 | x < y | |
| >= | 大于等于 | x >= y | |
| <= | 小于等于 | x <= y | |


4. 逻辑运算符

|---------|--------|----------|----------------------------------|
| 运算符 | 名称 | 示例 | 说明 |
| && | 与 | x && y | 两者为真时返回 y(短路求值) |
| || | 或 | x || y | 任一为真时返回第一个真值(短路) |
| ! | 非 | !x | 取反(true → false) |
| ?? | 空值合并 | x ?? y | x 为 null/undefined 时返回 y(ES2020) |


5. 位运算符

|---------|--------|------------|
| 运算符 | 名称 | 示例 |
| & | 按位与 | x & y |
| | | 按位或 | x | y |
| ^ | 按位异或 | x ^ y |
| ~ | 按位非 | ~x |
| << | 左移 | x << 2 |
| >> | 右移 | x >> 2 |
| >>> | 无符号右移 | x >>> 2 |


6. 三元运算符

|---------|-----------|----------------|
| 运算符 | 示例 | 说明 |
| ? : | x ? y : z | 若 x 为真则 y,否则 z |


7. 其他运算符

|------------|--------|----------------------|------------------------------|
| 运算符 | 名称 | 示例 | 说明 |
| typeof | 类型检测 | typeof x | 返回变量类型(如 "string") |
| instanceof | 实例检测 | obj instanceof Array | 检查对象是否属于指定类 |
| in | 属性检测 | "key" in obj | 检查对象是否包含属性 |
| delete | 属性删除 | delete obj.key | 删除对象属性 |
| ... | 展开运算符 | [...arr] | 展开数组/对象(ES6+) |
| ?. | 可选链 | obj?.prop | 避免 null/undefined 错误(ES2020) |


8. 运算符优先级

从高到低常见优先级:

  1. ()(分组)
  2. !、++、--(一元操作符)
  3. *、/、%
  4. +、-
  5. >、<、>=、<=
  6. ==、===、!=、!==
  7. &&
  8. ||、??
  9. ? :(三元)
  10. =、+=(赋值)

提示:使用 () 明确优先级以避免歧义。


示例代码
javascript 复制代码
// 算术 + 赋值
let a = 10;
a **= 2; // a = 100

// 比较 + 逻辑
console.log(5 === "5"); // false(严格等于)
console.log(null ?? "default"); // "default"(空值合并)

// 三元运算符
const age = 20;
const status = age >= 18 ? "Adult" : "Minor"; // "Adult"

// 可选链
const user = { address: { city: "Paris" } };
console.log(user?.address?.city); // "Paris"
console.log(user?.contact?.phone); // undefined(不报错)