美文网首页es6 语法学习
ES6基础教程(第二节)——解构赋值

ES6基础教程(第二节)——解构赋值

作者: 多平方 | 来源:发表于2019-06-17 22:36 被阅读0次

    es6在给对象赋值方面运用了一个新功能,称为解构赋值,以下是从数组的解构赋值,对象的解构赋值,字符串的结构赋值,以及解构赋值的使用这四大方面进行讲解。

    数组的解构赋值:数组具有一个特点就是有顺序关系,数组的结构赋值讲究的就是一一对应,来个例子:

    var [a,b,c]=[1,2,3]

    console.log(a)

    console.log(b)

    console.log(c)

    打印出的值为1,2,3;

    嵌套赋值

    var [a,b,[c1,c2]]=[1,2,[3,4]]

    console.log(a)

    console.log(b)

    console.log(c1)

    console.log(c2)

    此时打印出的值为1,2,3,4;

    进行了一一对应。

    不完全赋值

    var [a,b,c]=[1,2]

    console.log(a)

    console.log(b)

    console.log(c)

    打印出来的值为1,2,undefined,相当于定义了c这个变量,但是没有对其进行赋值,所以值为undefined。

    设定默认值赋值

    var [a,b,c=3]=[1,2]

    console.log(a)

    console.log(b)

    console.log(c)

    此时打印就是1,2,3;

    当我们带了默认值时候,如果没有重新赋值,默认值就会带下去,所以此时的值为1,2,3。

    对象的结构赋值:对象是不带顺序属性的,只能根据属性名来进行查找对应的值

    var {a,b,c}={"a":1,"c":3,"b":2}

    console.log(a)

    console.log(b)

    console.log(c)

    此时打印的数值就是1,2,3;

    如果查找不到对应的属性设值为undefined

    {a}={"b":1}

    console.log(a)

    此时打印的值就为undefined。

    对象的解构赋值嵌套

    var {a:{b}}={"a":{"b":1}}

    console.log(b)

    对于内嵌对象,也和数组类似,此时打印的值为1;

    设定默认值赋值

    var {a,b=2}={"a":1}

    console.log(a)

    console.log(b)

    这是携带默认值的处理方式,打印出来是1,2;

    字符串的解构赋值

    var [a,b,c,d,e,f]="各个都是大佬"

    console.log(a)

    console.log(b)

    console.log(c)

    console.log(d)

    console.log(e)

    console.log(f)

    这个会惊奇的发现打印出来是:

    对的,你没有看错,每个字会为一个元素,被单独打印出来。

    剩下的美好时光我们来了解构赋值的用途:

    互换值:

    var a=1;

    var b=2;

    [a,b]=[b,a]

    console.log(a)

    console.log(b)

    此时打印出啦的是2,1;因为a和b的值已经进行了互换;再也不用像以前一样多定义一个变量,然后作为传递值进行传递了。

    定义函数参数

    function func({a,b,c}){

    console.log("a:"+a)

    console.log("b:"+b)

    console.log("c:"+c)

    }

    func({a:1,b:2,c:3,d:4,e:5})

    函数只会拿取需要的参数,不需要的参数将会被忽略,这样就避免了参数的污染。

    为函数设定默认值

    function func({a:"1"}){

    console.log("a:"+a)

    }

    func()

    func({a:"2"})

    第一个打印出来的值是1

    第二个打印出来的是2

    在有参数时候会用参数,没有参数时候就使用默认参数值。

    今天的量有点大,代码也是直接文本写的,不过逻辑还是很清晰,希望能和更多的人交流。

    微信公众号

    相关文章

      网友评论

        本文标题:ES6基础教程(第二节)——解构赋值

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