首页 > 其他分享 >ES6中新增的解构语法

ES6中新增的解构语法

时间:2022-10-13 14:12:12浏览次数:48  
标签:ES6 obj name 解构 语法 let console log

对象的解构 将对象中对应名字的值 赋值给同名的变量     !!注意点:对象的解构必须是 变量名和对象中的属性名同名才可以解构 对象的解构的优点:"可以快速的将对象中赋值的同名变量"

需求:定义一个对象并且解构出其中的值

var obj={
            name:"张三",
            age:20,
            gender:"男"
        }

 

 不使用解构语法下,采用赋值的方式调取出对象中的参数,可以看到使用起来十分的复杂
         let name=obj.name
         let age=obj.age
         let gender=obj.gender
         console.log(name,age,gender);

 

当我们使用解构语法来提取出里面的值的时候

        //完全解构     
let{name,age,gender}=obj
console.log(name,age,gender);
        //部分解构  
        //{}是对象结构的语法
        let{age}=obj
        console.log(age);

        //部分解构重命名
        //将原本name改名字为myName
        let{name:myName}=obj

 

需求:单独提取出 obj 中的一个方法

let obj ={
            naem:"欧阳三",
            fn:function(){
                console.log(this.name+":听我说谢谢你");
          }}
      //解构出对象中的方法
      let {fn}=obj
      //使用此方法
  fn()
      //因为出现了 undefined:听我说谢谢你
     //是因为window中预设的name此时为空,所以我们使用var来给 window.name所赋值
     var name="南宫四"
  需求:结构出随机函数 Math.random并且更新名字,使得可以使用rd()就达到 Math.random()相同效果
      let{random:rd}=Math
      console.log(rd());

 

数组解构

解构语法当然也可以对数组使用

  解构一个最基本的数组:         数组解构的特点:按照索引 有顺序的,一个一个的赋值
    let arr=[1,2,3]
    let [a,b,c]=arr
    console.log(a,b,c); //1,2,3

 

逗号占位符;         提出的需求:想要单独提取出 d=3
    let[,,d]=arr
    console.log(d); //3

 

复合解构:         复制原数组的变量并且更改名称即可
    let arr2=[1,2,[100,200],3]
    let [h,j,[k,l],p]=arr2
    console.log(h,j,k,l,p);  //1,2,100,200,3

标签:ES6,obj,name,解构,语法,let,console,log
From: https://www.cnblogs.com/Dollom/p/16787748.html

相关文章

  • Java基础语法 二维数组
    二维数组packagecom.ljg.java;/**二维数组的使用:* 规定:二维数组分为外层数组的元素,内层数组的元素* int[][]arr=newint[4][3];* 外层元素:arr[0],arr[......
  • DAT批处理文件语法
     bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具......
  • 多层语法糖、有参装饰器、及递归函数
    多层语法糖、有参装饰器、及递归函数目录多层语法糖、有参装饰器、及递归函数一、多层语法糖二、有参装饰器三、装饰器模板四、装饰器修复技术五、递归函数六、昨日作业详......
  • 多层语法糖,有参装饰器,递归函数
    多层语法糖deffunc1(a1):#1定义了函数func1#14func1(foo2) print('加载了func1')#15加载了func1 deffoo1(*args,**kwargs): print('执行了foo1')......
  • python基础之多层语法糖、函数递归
    python基础之多层语法糖、函数递归目录一、多层语法糖二、装饰器模版三、装饰器修复技术四、函数的递归调用1.函数的递归调用2.递归函数的定义3.递归函数的特点4.递归函数......
  • 多层语法糖+递归
    今日内容多层语法糖defoutter1(func1):#1先看函数print('加载了outter1')defwrapper1(*args,**kwargs):print('执行力wrapper1')re......
  • 多层语法糖、装饰器、递归函数
    多层语法糖、装饰器、递归函数目录多层语法糖、装饰器、递归函数一、多层语法糖二、有参装饰器三、装饰器模板1、最常用的无参装饰器2、不常用的有参装饰器四、装饰器修复......
  • Java基础语法 数组的默认初始化值
    默认初始化值packagecom.ljg.java;/**⑤数组元素的默认初始化值* >数组元素是整型:0* >数组元素是浮点型:0.0* >数组元素是char型:0或'\u0000',而非'0'......
  • 装饰器、递归函数,语法糖
    目录作业讲解多层语法糖问题有参装饰器装饰器模版装饰器修复技术递归函数作业作业讲解1.编写一个用户认证装饰器函数:registerlogintransferwithdraw基本要求......
  • 杂谈:我为啥不喜欢用新语法不喜欢用动态语句
    最近接手的代码,怎么说呢?原作者水平肯定是有的,而且很高。但是明显的一个感觉就是他特别喜欢用动态语句。喜欢用一些新语法。后来的一些改动,比较大的时候我直接就把动......