美文网首页
es6学习:解构赋值

es6学习:解构赋值

作者: 梁风有意 | 来源:发表于2018-09-21 22:40 被阅读0次

    1.数组的赋值

    数组的解构是一一对应的
    let [a,b,c] = [1,2,3];
    console.log(a);\\1
    console.log(b);\\2
    console.log(c);\\3
    

    解构可以有默认值

    let [d,e=true] = [1];
    console.log(d);//1
    console.log(e);//true
    //但是如果存在默认值,在赋值的时候赋值undefined,赋值还是取默认值
    let [f,g='ggg'] = [1,undefined];
    console.log(f);//1
    console.log(g);//ggg
    

    解构不成功的话,值是undefined

    let [h,i] = [1];
    console.log(h);//1
    console.log(i);//undefined
    

    还存在不完全解构,也就是等号右边的值比左边多

    let [j, [k], l] = [1, [2, 3], 4];
    console.log(j )// 1
    console.log(k )// 2
    console.log(l) // 4
    

    2.对象的解构

    let {tzy,lss} = {tzy:'boy',lss:'girl'};
    console.log(tzy);
    console.log(lss);
    //与数组不同的是,对象的解构是按照对象的属性名来赋值的,所以变量名要和属性名相同,
    //上面写法是es6的语法糖,当键和值相等时,可以简写,实际还是
    let {tzy:tzy,lss:lss} = {tzy:'boy',lss:'girl'};
    //也可以用另一种
    let {key:value} = {key:'value'};
    console.log(value);//value
    

    3.字符串解构
    字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

    const [a, b, c, d, e] = 'hello';
    console.log(a)// "h"
    console.log(b)// "e"
    console.log(c)// "l"
    console.log(d)// "l"
    console.log(e) // "o"
    

    类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。

    let {length : len} = 'hello';
    len // 5
    

    相关文章

      网友评论

          本文标题:es6学习:解构赋值

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