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 添加新功能,只是提供了一种更简洁、更直观的语法来实现已有的功能。

相关推荐
2501_921649492 小时前
Java 接入外汇数据 API 完整教程:实时报价、历史 K 线与 WebSocket 推送
java·开发语言·websocket·金融
℡終嚸♂6802 小时前
Java 反序列化漏洞详解
java·开发语言
故事和你912 小时前
蓝桥杯-2025年C++B组国赛
开发语言·软件测试·数据结构·c++·算法·职场和发展·蓝桥杯
王忘杰2 小时前
0基础CUDA炼丹、增加断点保存,从零开始训练自己的AI大模型 87owo/EasyGPT Python CUDA
开发语言·人工智能·python
邂逅星河浪漫2 小时前
【JavaScript】==和===区别详解
java·javascript·==·===
Lzh编程小栈2 小时前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试
_MyFavorite_2 小时前
JAVA重点基础、进阶知识及易错点总结(35)注解与反射
java·开发语言·tomcat
AbandonForce2 小时前
模拟实现vector
开发语言·c++·算法
瞭望清晨2 小时前
Python多进程使用场景
开发语言·python