详解JS如何进行变量解构

 更新时间:2023年11月08日 08:14:42   作者:生命猿于运动  
JavaScript中,可以使用解构赋值的方式来对数组或者对象进行变量解构,下面小编就来为大家详细介绍一下JavaScript实现数组或者对象解构的方法吧

定义

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

数组解构

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

数组长度等于1

const arr1 = [6];
const [id] = arr1;
console.log(id);	// 6

数组长度大于1 按数组下标进行索引赋值,仅有一个id变量:

const arr2 = [1,2,3,4,5];
const [id] = arr2;
console.log(id);	// 1

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

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

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

const arr4 = [1,2,3];
const [num1,num2,num3] = arr4;
console.log(num1);	// 1
console.log(num2);	// 2
console.log(num3);	// 3

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

const arr5 = [1,,3];
const [num1,num2=22,num3] = arr5;
console.log(num1);	// 1
console.log(num2);	// 22
console.log(num3);	// 3

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

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

对象解构

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

对象单个/多个参数解构赋值,在等号左边定义解构对象对应的key参数进行解构:

const obj1 = {id:1001, name:'张三'};
const {id, name} = obj1;
console.log(id + '-' + name);	// 1001-张三

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

const obj2 = {id:1002, name:'李四'};
const {id, name, age=18} = obj2;
console.log(id + '-' + name + '-' + age);	// 1002-李四-18

优缺点

优点:

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

缺点:

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

总结

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

到此这篇关于详解JS如何进行变量解构的文章就介绍到这了,更多相关JS变量解构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript html 静态页面传参数

    javascript html 静态页面传参数

    静态页面中用js获取页面参数的一些属性方法,具体的获取参数,可以搜索本站以前的一些文章。
    2009-04-04
  • webpack 最佳配置指北(推荐)

    webpack 最佳配置指北(推荐)

    这篇文章主要介绍了webpack 最佳配置指北的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-01-01
  • Javascript 实现 Excel 导入生成图表功能

    Javascript 实现 Excel 导入生成图表功能

    这篇文章主要介绍了Javascript 实现 Excel 导入生成图表功能,本文通过实例代码讲解给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • Javascript函数技巧学习

    Javascript函数技巧学习

    这篇文章主要介绍了Javascript函数技巧学习,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • JavaScript手写源码之omit函数的实现

    JavaScript手写源码之omit函数的实现

    最近突然有个新的想法,想去看看前端的小库来提升自己的编码能力。但是又不知道怎么去证明自己是否真的看懂了,那就实现一个omit函数吧
    2023-02-02
  • ES6的内置对象扩展实现示例

    ES6的内置对象扩展实现示例

    本文主要介绍了ES6的内置对象扩展实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • JS循环中正确使用async、await的姿势分享

    JS循环中正确使用async、await的姿势分享

    async / await是ES7的重要特性之一,也是目前社区里公认的优秀异步解决方案,下面这篇文章主要给大家介绍了关于JS循环中正确使用async、await的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • JavaScript构建自己的模板小引擎示例

    JavaScript构建自己的模板小引擎示例

    这篇文章主要介绍了JavaScript构建自己的模板小引擎,结合实例形式分析了javascript自定义模板引擎的实现与使用方法,需要的朋友可以参考下
    2018-12-12
  • 判断是否安装flash player及当前版本的JS代码

    判断是否安装flash player及当前版本的JS代码

    本文为大家讲述下如何使用jsJS判断是否安装flash player及版本,下面的处理代码或许对大家有所帮助,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • JavaScript实现外溢动态爱心的效果的示例代码

    JavaScript实现外溢动态爱心的效果的示例代码

    这篇文章主要为大家介绍了如何利用JavaScript制作出简单的外溢动态爱心的效果,文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编一起动手试一试
    2022-03-03

最新评论