JS解构赋值

什么是解构?

从一组值中挑出一或多个值,然后把它们分别赋给独立的变量,这也是一个非常常见的需求,举个简单列子

没有使用解构赋值前
//把这个值分别保存在各自的变量中,让他们成为一个独立的变量
    let nextValue=["xxj","tq"];
    let boy=nextValue[0];
    let girl=nextValue[1]
使用后
//用解构赋值,一句话解决上面三句代码
    let [boy,girl]=['xxj','tq']
    alert(boy)//xxj
    alert(girl)//tq
如果你不想取该数组中的全部值
//这样就只会给变量girl赋值,值为tq
    let [, girl]=['xxj','tq']
    alert(girl)//tq
交换两个变量的值,往往都需要第三方变量 列:
 //如何交换两个变量的值?
    let boy='xxj';
    let girl='tq';
    //使用第三方变量
    let temp=boy;
    boy=girl;
    girl=temp;
使用解构后数组赋值,就可以省略掉那个变量temp
    let boy='xxj';
    let girl='tq';
    //使用解构赋值,就不需要第三方变量,就解决了第三方变量的繁琐
    let [boy,girl]=['tq','xxj']
对象解构赋值
    let person={
        name:'xxj',
        age:20
    }
    //使用解构后,相当于给name,age取了个别名,就是外号的意思,比如周树人:鲁迅
    let {name:personName,age:personAge}=person
    alert(personName)//xxj
    alert(personAge)//20
数组解构
        let arr=[1,2,3,4,5,6]
        let arr2=[7,8,9,10]
        let arr3=[...arr,...arr2]
        //可以说是把arr和arr2中的数值,push到arr3中
        console.log(arr3)//[1,2,3,4,5,6,7,8,9,10]
默认值

在数组的结构赋值表达式中也可以为数组的任意位置添加默认值,当指定位置的属性不存在或其值为undefind时使用该默认值

        let list=[123,'xxj'];
        //如果city属性为undefind时,取该默认值深圳
        let [num,peron,city='深圳']=list
        console.log(num,person,city)//123,xxj,深圳
不定元素赋值

在数组中,可以通过...语法将数组中其余的元素赋值给一个特定的变量,列:

       let colors=['red','green','blue']
       let [firstColor,...othersColor]=colors
       console.log(firstColor)//red
       console.log(othersColor)//['green','blue']
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前面的话   我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新...
    CodeMT阅读 519评论 0 0
  • 前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性...
    sunnyghx阅读 763评论 0 0
  • 引入 在ES5中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码 这段代码从op...
    nengzhuan_zhang阅读 626评论 0 0
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 3,042评论 3 37
  • >> 五大职能定位 专业技术者、自由职业者、管理者、创业者、投资者。 每个人可能适合不同的定位,或者不同阶段有不同...
    Maker在杭州阅读 201评论 0 0