js中如何进行变量解构

定义

JavaScript中,可以使用解构赋值的方式来对数组或者对象进行变量解构,也可以简单的理解为就是对变量拆解属性进行赋值。

数组解构

数组解构唯一要注意的就是下标的位置,只要解构赋值变量所处下标位置相同,那么就能够成功解构赋值:

  • 数组长度等于1
javascript 复制代码
const arr1 = [6];
const [id] = arr1;
console.log(id);	// 6
  • 数组长度大于1 按数组下标进行索引赋值,仅有一个id变量:
javascript 复制代码
const arr2 = [1,2,3,4,5];
const [id] = arr2;
console.log(id);	// 1

多个变量解构,如果中间有不需要解构的,也需要以逗号进行分割,主要确保需要解构的索引位置准确:

javascript 复制代码
const arr3 = [1,2,3,4,5];
const [num1,,num2,,num3] = arr3;
console.log(num1);	// 1
console.log(num2);	// 3
console.log(num3);	// 5

数组全量解构,即所有索引位置都对应解构参数:

javascript 复制代码
const arr4 = [1,2,3];
const [num1,num2,num3] = arr4;
console.log(num1);	// 1
console.log(num2);	// 2
console.log(num3);	// 3

数组解构默认值设置,使用(变量名=默认值)进行解构默认值设置:

javascript 复制代码
const arr5 = [1,,3];
const [num1,num2=22,num3] = arr5;
console.log(num1);	// 1
console.log(num2);	// 22
console.log(num3);	// 3

用于变量值交换,只需将两个或多个变量存放到等号两边的数组,对应好要交换的位置即可:

javascript 复制代码
const a=1;
const b=2;
[a, b] = [b, a];
console.log(a + '-' + b);	// 2-1

对象解构

掌握了上面的数据解构,那么对象解构也就不难理解了,数组与对象的区别就是索引方式不同,数组是根据下标索引,而对象则是key-value的索引方式,所以这里我们只需要解构赋值变量的key相同,那么就能够成功解构赋值:

  • 对象单个/多个参数解构赋值,在等号左边定义解构对象对应的key参数进行解构:
javascript 复制代码
const obj1 = {id:1001, name:'张三'};
const {id, name} = obj1;
console.log(id + '-' + name);	// 1001-张三
  • 对象解构默认值设置,使用(变量名=默认值)进行解构默认值设置:
javascript 复制代码
const obj2 = {id:1002, name:'李四'};
const {id, name, age=18} = obj2;
console.log(id + '-' + name + '-' + age);	// 1002-李四-18

优缺点

优点:

  • 代码简洁明了,便于阅读和维护。
  • 可以直接从对象或数组中提取需要的属性或元素,避免编写大量的取值代码。
  • 可以同时定义多个变量,减少了代码量和冗余。
  • 多个变量值的交换变得更加方便。
  • 从对象、数组中取值时,默认值设置方便。

缺点:

  • 解构赋值会改变原对象或数组的结构,可能会导致意外的结果。
  • 嵌套结构的对象进行解构相对复杂,代码可读性差。
  • 需要有一定的js基础,不同于普通的语法基础,需要花些时间去学习。

总结

js解构也是很流行的代码写法,掌握基础的用法也非常简单,用上了真的会停不下来,日常使用也只需要我们上面的案例就够了,其他的自己有需要可以再深入研究,不过也不建议研究的太多,因为那会使代码可读性变得更加复杂。

掌握一个小技能,在写代码的路上才不会吃亏。

相关推荐
崔庆才丨静觅3 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60613 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了4 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅4 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅4 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅4 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment5 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅5 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊5 小时前
jwt介绍
前端
爱敲代码的小鱼5 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax