ES6-----学习系列二(解构赋值)

一、解构赋值的定义

  简单的理解就是赋值=号左右两侧具有相同的结构,来进行一一对应的赋值的语句

二、解构赋值的分类

  数组解构赋值  对象解构赋值  字符串解构赋值  布尔值解构赋值  函数参数解构赋值  数值解构赋值 (重点理解前两个就可以了)

三、对于每个分类单独解释

  1、数组解构赋值(下面进行代码展示,并添加必要的注释便于理解)

{
  let a,b,rest;
  [a,b]=[1,2];
  console.log(a,b);//输出1,2 直接将1和2解构到a和b
}

  也可以对变量设置默认值例如下面代码的c 就是默认为3  如果解构例如[a,b,c]=[1,2] 没有对c进行解构  则c为undefined

{
  let a,b,c,rest;
  [a,b,c=3]=[1,2];
  console.log(a,b);
}

  使用场景1

    ①、变量交换   

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

    ②、对函数返回值直接提取(没有解构赋值 需要先取出结果 然后通过索引来进行取出) 

{
  function f(){
    return [1,2]
  }
  let a,b;
  [a,b]=f();
  console.log(a,b);
}

    ③、只取出返回结果的某些需要的值

{
  function f(){
    return [1,2,3,4,5]
  }
  let a,b,c;
  [a,,,b]=f();
  console.log(a,b); // 输出1 4
}

    ④、不关心数组的内容长度

{
  function f(){
    return [1,2,3,4,5]
  }
  let a,b,c;
  [a,...b]=f();
  console.log(a,b);//输出1,[2,3,4,5]
}

  2、对象解构赋值

{
  let o={p:42,q:true};
  let {p,q}=o;
  console.log(p,q);
}

   对象解构赋值设置默认值

{
  let {a=10,b=5}={a:3};
  console.log(a,b);//输出3 5
}

   稍微复杂的对象的解构赋值   

{
  let metaData={
    title:‘abc‘,
    test:[{
      title:‘test‘,
      desc:‘description‘
    }]
  }
  let {title:esTitle,test:[{title:cnTitle}]}=metaData;
  console.log(esTitle,cnTitle);//abc test (相当于esTitle和cnTitle分别对应metaData里面的abc和test)
}
时间: 2024-10-10 00:45:51

ES6-----学习系列二(解构赋值)的相关文章

ES6学习总结之 解构赋值

变量的解构赋值 1.数组解构赋值 1.1 基本用法 ES6允许按照一定模式,提取数组或对象的值,对变量赋值,称之为解构赋值 以往对变量赋值如下: var a=10; var b=20; var c=30; ES6中可写成以下形式: var [a,b,c] = [10,20,30]; 这种写法属于"模式匹配",只要等号两边的模式对应,右边的值便会赋予左边对应的变量. 注意下面的写法: // ... 是扩展运算符,代表剩余所有参数 var [a, ...b] = [1,2,3,4]; a

ES6-个人学习笔记二--解构赋值

第二期,解构赋值如果能够熟练应用确实是个十分方便的功能,但是过分的依赖和嵌套只会让代码理解和维护起来十分困难,是个体现高逼格的表达式呢~ 1,解构赋值的基础 //定义:es6运行按照一定模式,从数组或对象中提取值,并对变量进行赋值,如 var [a,b,c] = [1,2,3]; //一些其他方式 let [ , , a1] = [1,2,3]; //a1:3 let [a2,...b2] = [1,2,3,4]; //a2:1,b2:[2,3,4] let [a3,b3,...c3] = [1

学习es6之(变量的解构赋值)

数组的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; ES6可以写成下面这样. let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 本质上,这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值,下面是一些使用嵌套数组进行解构的例子. let [foo, [[

ES6新特性:解构赋值(上)

1:什么是解构赋值 按照一贯的套路,接下来的内容是解释:什么是解构赋值? 来看看官方的解释: ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 这句话也不难理解,但是前端君怎么会这么敷衍了事,随便贴一段官方的文字解释就算呢. 来,我们来上一段代码进一步解释一下什么叫解构赋值. 关于给变量赋值,传统的变量赋值是这样的: var arr = [1,2,3];//把数组的值分别赋给下面的变量: var a = arr[0]; var b = a

es6分享——变量的解构赋值

变量的解构赋值:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前的写法: var a = 1; var b = 2; es6允许的写法: let [a,b] = [1,2]; 一般用途: 1.交换变量的值 [x,y] = [y,x]; 2.函数返回多个值 function f1() { return [1,2,3]; } var [a,b,c] = f1(); // 返回json对象: function f1() { return

ES6:变量的解构赋值

1.数组的解构赋值 基本用法: ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring).  以前,为变量赋值,只能直接指定值. var a = 1; var b = 2; var c = 3; ES6允许这样写: var [a,b,c] = [1,2,3]; console.log(a); //1 console.log(b); //2 console.log(c); //3 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 本质上,

ES6 之 数组的解构赋值

数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. let a = 1;let b = 2;let c = 3; ES6允许写成下面这样. let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值.下面是一些使用嵌套数组进行解构的例子

ES6 函数参数的解构赋值

function add([x, y]){ return x + y; } add([1, 2]); // 3 原文地址:https://www.cnblogs.com/nongzihong/p/10678522.html

ES6 之 解构赋值

本博文配合 阮一峰 <ES6 标准入门(第3版)>一书进行简要概述 ES6 中变量的解构赋值. 数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. ES6 以前,为变量赋值,只能直接指定值. let a = 1 let b = 2 let c = 3 ES6 允许写成下面的样式. let [a, b, c] = [1, 2, 3] 该代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 相关示例 本质上来说,这种写法属于“模式匹配”.即

es6(es2015)解构赋值

?es6新增结构赋值,结构赋值分为两种 数组解构赋值,对象解构赋值. 数组解构赋值: 分别按顺序给数组中的每一项赋值.  如上所示如果c未给赋值,c为undefind. a==1,b==2 那么3并没有被保存到变量中,这时如果想要将剩余值进行保存,可以只用“...” ...c 这样的形式,可以将剩余值以数组的形式将其保存到变量c中. 另外...可用于复制数组 实际项目中有时候我们需要将函数中的实际参数放到一个数组中, es5:Array.prototype.slice.call(argument