美文网首页
ES6学习-5.解构:使数据访问更便捷

ES6学习-5.解构:使数据访问更便捷

作者: Zip_Wang | 来源:发表于2018-01-29 16:41 被阅读10次

    一、对象解构

    1、对象解构

    例如以下代码:直接将对象node解析成type和name变量。

    2、解析赋值

    例如以下代码:本身已经声明了type和name两个变量并初始化,然后将node对象直接赋值给这两个变量,type和name的值就改变了。

    3、默认值

    在解构的过程中,如果局部变量名称不存在,那么这个变量就会被赋值成undefined,代码如下:value这个值在node对象中不存在,所以输出是undefinded。

    然而我们可以给他一个默认值,代码如下:value给了一个默认值true,node对象没有value这个属性,所以value就使用了默认值true。

    4、为非同名局部变量赋值

    上面的示例都是解构成了对象中相应的属性名相同的变量名,如果要使用不同的变量名,如下面代码:node对象就解构成了localType和localName两个变量。

    5、嵌套对象解构

    解析复杂的对象,直接看下面的代码:下面的代码直接找的就是node.loc.start的值,要找到某个对象中的一个节点,就要用“{属性名}”去查找。

    二、数组解构

    1、数组解构

    看以下代码:这样就可以不用下标去取值,然后赋值给变量。

    2、解构赋值

    这个操作和对象解构差不多,只是不需要小括号,看以下代码:变量firstColor和secondColor就变成数组中的第一个值和第二个值。

    3、交换两个变量的值

    在排序算法中,我们经常会将数组中的两个数进行交换,以前的做法是定义一个tmp,然后进行交换,而解构可以很方便的进行交换,看以下代码:

    4、默认值

    和对象解构一样,如果没有想应的值,那么变量则会被定义成undefined。看如下代码:

    5、嵌套数组解构

    和对象解构相似,插入一个数组模型,就可以解构下一层次,看以下代码:

    6、不定元素

    可以通过"..."将多个元素赋值给一个变量,看以下代码:

    使用这个不定元素的方法,我们就可以用来复制一个数组,看以下代码:

    三、混合解构

    看以下代码:就是将对象解析和数组解析合并使用。

    四、解构参数

    当定义一个方法的时候,需要传入一个对象作为一个参数,例如以下的方法:

    对于使用这个方法的人来说,他并不知道options到底要什么样的对象属性,必须要走到源代码看到了,才能知道,所以这个时候就用解构参数来替换这个options,代码如下:

    这样对于使用这个方法的人来说,他就知道第三个参数是要传一个对象,这个对象具体有哪些属性也就一目了然。

    解构参数的默认值

    对于解构参数,如果要有默认值,可以使用以下代码:

    这样第三个参数对象,即使使用者不传入相应的对象值,那么方法也可以使用默认的值。

    相关文章

      网友评论

          本文标题:ES6学习-5.解构:使数据访问更便捷

          本文链接:https://www.haomeiwen.com/subject/pumxzxtx.html