全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

JavaScript 赋值运算符

赋值运算符用于将值赋给变量,JavaScript 提供了基本赋值和复合赋值运算符。

基本赋值运算符

JavaScript
// 基本赋值
let a = 10;        // 将 10 赋值给 a
let b = c = 5;     // 链式赋值(从右向左)

// 解构赋值
let [x, y] = [1, 2];       // 数组解构
let {name, age} = person;  // 对象解构

复合赋值运算符

复合赋值运算符将运算与赋值合并,简化代码书写。

运算符等价形式示例
+=x = x + ya += 3
-=x = x - ya -= 3
*=x = x * ya *= 3
/=x = x / ya /= 3
%=x = x % ya %= 3
**=x = x ** ya **= 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 新增:||=&&=??= 用于条件赋值
  • 赋值表达式有返回值,链式赋值从右向左执行

📝 发现内容有误?点击此处直接编辑

← 上一篇 JavaScript 算术运算符
下一篇 → JavaScript 逻辑运算符
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库