JavaScript 解构赋值

什么是解构赋值?

解构赋值是一种 JavaScript 表达式,允许我们从数组或对象中提取数据,并赋值给不同的变量。 解构赋值是 ES6 的强大特性,可以简化代码。

数组解构示例:

javascript 复制代码
// 基本用法
const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a, b, c); // 1 2 3

// 只解构部分元素
const [first, second] = [10, 20, 30, 40];
console.log(first, second); // 10 20

// 跳过某些元素
const [x, , z] = [1, 2, 3];
console.log(x, z); // 1 3

// 设置默认值
const [p = 5, q = 10] = [1];
console.log(p, q); // 1 10(q使用默认值)

// 剩余元素
const [head, ...tail] = [1, 2, 3, 4, 5];
console.log(head); // 1
console.log(tail); // [2, 3, 4, 5]

// 变量交换(经典用法)
let m = 1, n = 2;
[m, n] = [n, m];
console.log(m, n); // 2 1

对象解构示例

javascript 复制代码
// 数组解构(按位置)
const [a, b] = [1, 2];           // a=1, b=2

// 对象解构(按键名)
const {name, age} = {name: '小明', age: 20};  // name='小明', age=20

嵌套解构

javascript 复制代码
// 嵌套数组
const [first, [second, third]] = [1, [2, 3]];
console.log(first, second, third); // 1 2 3

// 在函数参数中
function getUser([id, {name, age}]) {
  console.log(`ID: ${id}, 姓名: ${name}, 年龄: ${age}`);
}

getUser([1001, {name: '小明', age: 20}]);
// 输出: ID: 1001, 姓名: 小明, 年龄: 20

实际运用场景

如:一个函数返回多个值:

javascript 复制代码
// 函数返回多个值
function getMinMax(numbers) {
  return [Math.min(...numbers), Math.max(...numbers)];
}

// 使用解构接收
const [min, max] = getMinMax([5, 2, 8, 1, 9]);
console.log(`最小值: ${min}, 最大值: ${max}`);

解构赋值其实仅仅是个语法糖。它并没有为 JavaScript 添加新功能,只是提供了一种更简洁、更直观的语法来实现已有的功能。

相关推荐
为何创造硅基生物5 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好5 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李5 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅5 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
之歆6 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
Maimai108086 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
candyTong6 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
社交怪人7 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言