JavaScript 赋值运算符
赋值运算符用于将值赋给变量,JavaScript 提供了基本赋值和复合赋值运算符。
基本赋值运算符
JavaScript
// 基本赋值
let a = 10; // 将 10 赋值给 a
let b = c = 5; // 链式赋值(从右向左)
// 解构赋值
let [x, y] = [1, 2]; // 数组解构
let {name, age} = person; // 对象解构
复合赋值运算符
复合赋值运算符将运算与赋值合并,简化代码书写。
| 运算符 | 等价形式 | 示例 |
|---|---|---|
+= | x = x + y | a += 3 |
-= | x = x - y | a -= 3 |
*= | x = x * y | a *= 3 |
/= | x = x / y | a /= 3 |
%= | x = x % y | a %= 3 |
**= | x = x ** y | a **= 2 |
代码示例
JavaScript
// 算术复合赋值
let num = 10;
num += 5; // num = 15
num -= 3; // num = 12
num *= 2; // num = 24
num /= 4; // num = 6
num %= 4; // num = 2
num **= 3; // num = 8
// 字符串拼接
let str = 'Hello';
str += ' World'; // "Hello World"
// 与其他运算符结合
let arr = [1, 2, 3];
arr[0] += 10; // arr 变为 [11, 2, 3]
let obj = { count: 0 };
obj.count += 1; // obj.count 变为 1
位运算复合赋值
JavaScript
let bits = 0b1010;
bits &= 0b1100; // 按位与赋值
bits |= 0b0011; // 按位或赋值
bits ^= 0b1111; // 按位异或赋值
bits <<= 2; // 左移赋值
bits >>= 1; // 右移赋值
bits >>>= 1; // 无符号右移赋值
逻辑赋值运算符(ES2021)
JavaScript
// ||= 逻辑或赋值
let a = null;
a ||= 'default'; // a = 'default'(a 为假值时赋值)
// &&= 逻辑与赋值
let b = 5;
b &&= 10; // b = 10(b 为真值时赋值)
// ??= 空值合并赋值
let c = undefined;
c ??= 'fallback'; // c = 'fallback'(c 为 null/undefined 时赋值)
| 运算符 | 条件 | 示例 |
|---|---|---|
||= | 左侧为假值时赋值 | a ||= b |
&&= | 左侧为真值时赋值 | a &&= b |
??= | 左侧为 null/undefined 时赋值 | a ??= b |
注意事项
- 赋值表达式本身有返回值,返回赋的值
- 链式赋值从右向左执行
- 复合赋值会进行类型转换
JavaScript
// 赋值表达式有返回值
let x;
console.log(x = 5); // 5
// 链式赋值
let a, b;
a = b = 10; // b = 10, a = 10
// 类型转换
let n = '5';
n += 3; // "53"(字符串拼接)
n -= 2; // 51(转为数字运算)
要点总结
- 基本赋值:
=用于给变量赋值 - 复合赋值:
+=、-=、*=、/=、%=、**=简化运算赋值 - ES2021 新增:
||=、&&=、??=用于条件赋值 - 赋值表达式有返回值,链式赋值从右向左执行
📝 发现内容有误?点击此处直接编辑