当前位置: 首页 > news >正文

JS解构赋值语法(Destructuring Assignment)(JS{}、JS花括号)数组解构、对象解构、嵌套解构、混合解构

文章目录

  • 🧩 JavaScript 解构赋值语法详解
  • 一、什么是解构赋值?
  • 二、数组解构
    • 1. 基本用法
    • 2. 默认值
    • 3. 跳过元素
    • 4. 剩余运算符(Rest)
  • 三、对象解构
    • 1. 基本用法
    • 2. 变量重命名
    • 3. 默认值
    • 4. 嵌套解构
  • 四、混合解构
  • 五、函数参数解构
  • 六、应用场景举例
    • ✅ 交换变量
    • ✅ 从函数返回多个值
  • 七、总结
  • 补充
    • 还有一种结合了ts的类型语法,对函数形参直接解构,比较奇葩

🧩 JavaScript 解构赋值语法详解

在现代 JavaScript 中,解构赋值(Destructuring Assignment) 是一个非常实用的语法特性。它可以让我们从数组或对象中快速提取数据并赋值给变量,代码更简洁、可读性更强。本文将带你全面了解解构赋值的用法和技巧。


一、什么是解构赋值?

简单来说,解构赋值 就是按照一定的模式,从数组或对象中提取值,然后将它们赋值给变量。
示例:

// 数组解构
const [a, b] = [10, 20];
console.log(a); // 10
console.log(b); // 20// 对象解构
const { name, age } = { name: 'Alice', age: 25 };
console.log(name); // Alice
console.log(age);  // 25

相比传统的方式:

const arr = [10, 20];
const a = arr[0];
const b = arr[1];

解构赋值更加简洁明了。


二、数组解构

1. 基本用法

const numbers = [1, 2, 3];
const [x, y, z] = numbers;
console.log(x, y, z); // 1 2 3

2. 默认值

如果对应位置没有值,可以给变量设置默认值:

const [a = 1, b = 2] = [10];
console.log(a, b); // 10 2

3. 跳过元素

通过在解构中留空,可以跳过不需要的值:

const [first, , third] = [1, 2, 3];
console.log(first, third); // 1 3

4. 剩余运算符(Rest)

使用 ... 可以获取剩余元素:

const [head, ...rest] = [1, 2, 3, 4];
console.log(head); // 1
console.log(rest); // [2, 3, 4]

三、对象解构

1. 基本用法

const person = { name: 'Tom', age: 30 };
const { name, age } = person;
console.log(name, age); // Tom 30

2. 变量重命名

可以将解构出的属性赋值给新的变量名:

const user = { id: 1, username: 'admin' };
const { username: name } = user;
console.log(name); // admin

3. 默认值

const { city = 'Unknown' } = { name: 'Jack' };
console.log(city); // Unknown

4. 嵌套解构

const student = {name: 'Lucy',scores: { math: 90, english: 85 }
};
const { scores: { math } } = student;
console.log(math); // 90

四、混合解构

数组和对象可以结合使用:

const users = [{ id: 1, name: 'Alice' },{ id: 2, name: 'Bob' }
];
const [{ name: firstUser }, { name: secondUser }] = users;
console.log(firstUser, secondUser); // Alice Bob

五、函数参数解构

解构赋值常用于函数参数,尤其在需要传入多个配置项时特别方便:

function createUser({ name, age = 18, city = 'Beijing' }) {console.log(`${name}, ${age}, ${city}`);
}createUser({ name: 'Eve', age: 20 });
// 输出:Eve, 20, Beijing

相比传统方式,代码更加优雅,且能避免多层访问。


六、应用场景举例

✅ 交换变量

let a = 1, b = 2;
[a, b] = [b, a];
console.log(a, b); // 2 1

✅ 从函数返回多个值

function getPosition() {return { x: 10, y: 20 };
}const { x, y } = getPosition();
console.log(x, y); // 10 20

七、总结

特性数组解构对象解构
匹配依据位置顺序属性名
支持默认值
支持嵌套
支持重命名

解构赋值不仅让代码更简洁,还能大大提升可读性与可维护性。无论在日常开发还是函数设计中,灵活使用解构语法都能让你的 JavaScript 代码更加优雅!


✍️ 结语
掌握解构赋值,是走向现代 JavaScript 编程风格的重要一步。建议在项目中多加实践,比如在 React/Vue 的 props 处理、API 返回值解析等场景中,都会频繁用到它。

补充

还有一种结合了ts的类型语法,对函数形参直接解构,比较奇葩

Next.js 13+ App Router 中 API 路由的标准语法:

export async function GET(request: NextRequest,           // 第一个参数:请求对象{ params }: { params: { userId: string } }  // 第二个参数:包含路由参数的对象
) {const { userId } = params;      // 从 params 中提取 userId// ...
}

这种写法等价于:

export async function GET(request: NextRequest,context: { params: { userId: string } }
) {const userId = context.params.userId;// ...
}

关键点:要理解{ params: { userId: string } }ts类型,{ params }没有直接写成独立形参如context,而是直接把它解构了,后面用到解构后的params参数

http://www.dtcms.com/a/501068.html

相关文章:

  • 福州开发企业网站数据库网站建设方案
  • 网站后台口令wordpress子主题命名
  • 好书推荐|马毅教授重磅新书《数据分布的深度表达学习》
  • 网站建设服务商排行互诺 外贸网站建设
  • 事业单位门户网站开发网站建设套模版
  • 河南中恒诚信建设有限公司网站营销推广费用
  • 有哪些网站做返利模式安卓优化大师官网
  • 宜宾网站建设08keji什么网址可以免费
  • 网站建设在360属于什么类目如何提高网站转化率
  • 新闻型网站建设wordpress 联系
  • tiktok官方网站入口咨询公司有哪些
  • 聊城做网站的公司行情网站定制站
  • 只用jsp做网站东莞网络营销外包价格
  • Linux中NUMA内存分配策略初始化以及相关函数的实现
  • 【CMAQ 模型第一期】模型概述
  • 企业网站一般要素上海免费建网站
  • 水果网站 模板在线玩传奇
  • 有哪些做数据比较好的网站vps 网站发布
  • 网站建设与推广销售户话术广州远洋建设实业公司网站
  • 文件内容加密与解密
  • 做企业网站类型最新国际形势分析
  • 东莞如何搭建网站建设网站建设合同简单
  • 展示系统 网站模板教如何做帐哪个网站好
  • 苏州建设厅网站首页做平台好还是自己建网站
  • 襄阳门做网站湖南企业seo优化推荐
  • 数据库的脏读、不可重复读、幻读分别是什么?
  • 网站备案vpn注销做外贸自己建网站
  • 建设银行国际互联网站天津网站建设工具
  • 公司网站制作站制作小说在线阅读网站怎么做
  • 会话跟踪技术与安全框架(认证+授权+防护)