1.解构初了解

解构是ES6的一个新的语法特性,可以把他看作是一个

具有结构赋值功能的一个语法。

关于解构通常有俩种,有数组解构和对象解构

解构有什么优点吗?为什么我们用他。

ok,让我们用一个例子来显示一下解构的优点

定义一个函数,返回一个数组(含3个数),用a,b,c来接受。

1.用平常的语法

function foo(){
            return [1,2,3]
        }
var temp=foo(),
a=temp[0],b=temp[1],c=temp[2]
console.log(a,b,c)

构造一个函数手动赋值,用一个临时变量temp,将值传递给a,b,c

2.用解构的方法

  function foo(){
      return [1,2,3]
      }
   var [a,b,c]=foo()
  console.log(a,b,c)

在输出的结果都是一样,都输出(1,2,3)

所以你怎么选。

2.解构详细解析

2.1对象属性赋值形式

相比于之前的赋值形式我们都熟悉与=a的赋值形式

但是解构语法翻转了这种形式,,左侧变量作为一个“模式”

用于将右侧的数组赋值给左侧的变量

接着讨论一下在上面{a,b,c}其实是{a:a,b:b,c:c}的简写。

那么在赋值的时候省略的部分是a:   还是 :a

在这我们就需要去了解对象属性赋值形式

function foo(){
      return {a:4,b:5,c:6}
    }
var { a:aitem,b:bitem,c:citem }=foo()
     
 console.log(aitem,bitem,citem)
 
 var x=10,y=20
 var o={d:x,e:y}
 console.log(o.d,o.e)

 现在我们大概能明白了吧,

用一张图来解释

a27775d61b604a1a92f718a3bc62eafe.png

2.2变量的声明

在前面我们看到了使用var声明变量,其实也可以使用let,const声明

也可以通过IEIF的形式赋值比如({x,y,z}=bar())

 好的,那么关于变量的话,他只能被设置为变量标识符吗?

这种想法是愚蠢的,任何合法的赋值表达式都可以

用两个例子来解析

2.3怎么解构

记住一个原则,对称解构。

1.解构的过多

 怎么理解,就是左右的赋值不对称,并不是所有的值都用来解构,

多余的值会被设置为undefinder

2解构的过少

右侧的"变量"多余左侧的变量

3.解构正好

左右变量相等

 数组的解构是按顺序排列的,变量的取值有他的位置决定

对象的解构,对象的属性没有次序,变量必须与属性同名,才能取到正确的值,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者

3.实践

3.1数组的解构

var a1=[1,[2,3,[4]],5]
var [a,[b,c,[d]],e]=a1
console.log(a,b,c,d,e)

输出1,2,3,4,5

在这里采用重复解构的形式,解构的形式就是从内向外依次解构

3.2对象的解构

var  o1={a:{b:{c:6}}}
var {a:{b:{c:w}}}=o1
console.log(w)

输出6

3.3解构参数

 function foo({x,y}){
        console.log(x.y)
    }
console.log(3,4)

输出3,4,如果是console.log(3)的话会报错,但是x的值是已经解构的

3.4复杂解构

let wangfei = {
name: "王菲",
   age: 18,
  songs: ["红豆", "流年", "暧昧", "传奇"],
  history: [{ name: "窦唯" }, { name: "李亚鹏" }, { name: "谢霆锋" }],
};
 
let {
   songs: [one, two, three],
  history: [first, second, third],
} = wangfei;
console.log(one, two, three,first, second, third)

44485beae5484ba78a5e2b0028e70e36.png

 4.总结

1.了解了解构的含义,及优点

2.学会了解构对象属性赋值的形式

3.了解了一些解构的技巧

4.用几个例子来动手实践。

到此这篇关于ES6新语法之解构的文章就介绍到这了,更多相关ES6新语法解构内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

ES6新语法之解构实践指南的更多相关文章

  1. 详解如何使用webpack+es6开发angular1.x

    本篇文章主要介绍了详解如何使用webpack+es6开发angular1.x,具有一定的参考价值,有兴趣的可以了解一下

  2. 结合 ES6 类编写JavaScript 创建型模式

    这篇文章主要介绍了结合ES6类编写JavaScript创建型模式,本文开始系统性的对20多种JavaScript 设计模式进行简单概述,然后结合ES6类的方式来编写实例代码展示其使用方式,需要的朋友可以参考一下

  3. 分析ES5和ES6的apply区别

    这篇文章主要介绍了分析ES5和ES6的apply区别,对ES6感兴趣的同学,可以参考下

  4. ES6的Promise用法详解

    本文详细讲解了ES6的Promise用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. JavaScript解构赋值详解

    这篇文章主要为大家介绍了JavaScript解构赋值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  6. ECMAScript6入门教程

    本文详细讲解了ECMAScript6的基础教程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. ES6变量赋值和基本数据类型详解

    本文详细讲解了ES6变量赋值和基本数据类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 深入浅出讲解ES6的解构

    解构是ES6的新特性,用于从JavaScript对象和数组中提取数据,语法上比ES5所提供的更加简洁、紧凑、清晰。本文将深入探讨解构赋值,为你介绍该新特性中你所需要知悉的一切。

  9. JavaScript ES6的函数拓展

    这篇文章主要介绍了JavaScript ES6的函数拓展,

  10. ES6数组复制和填充方法copyWithin()、fill()的具体使用

    本文主要介绍了ES6数组复制和填充方法copyWithin()、fill()的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部