开发经常用的 es6 对象结构 和 数组结构

80 阅读1分钟

推荐文章:www.jianshu.com/p/a8f74b29d…

应用在后台返回数据 不想在定义一个新的变量去接收

自已演示了一下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>


    <script>
        const cont = ['Asher', 'jianshu.com'];

        // const [name, website, lan] = cont;
        // console.log(name, website, lan);     //Asher jianshu.com undefined

        //同对象,一样可以给没有的项加默认值
        const [name, website, lan = 'PHP'] = cont;
        console.log(name, website, lan);     //Asher jianshu.com PHP

        // 数组的解构是按照顺序赋值  名字自定义
        const [edc, abc, son = 'PHP'] = cont;
        console.log(edc, abc, son) //Asher jianshu.com PHP

        //应用场景:利用数组解构交换变量值
        let a = 100;
        let b = 20;

        [a, b] = [b, a]
        console.log(a, b);       //20 100

        //对象结构的写法,意思是先声明变量name和age,然后在对象Asher中寻找同名属性,最后将属性值赋值给变量name和age
        const Asher = {
            name1: 'Asher Zhang',
            age: 5,
            family: {
                mother: 'North Zhang',
                father: 'Richard Zhang',
                brother: 'Howard Zhang'
            }
        }
        // const { name1, age } = Asher;    //Asher Zhang;5
        // console.log(name1,age)

        //一定要name 一样? 可以用: 赋予新的名称 ?
        // const { res:name1} =Asher
        // console.log(res)//没有定义  res 都不在Asher里面
        
        const {name1:iWant } = Asher
        console.log(iWant)//Asher Zhang

        // :后面才是自定义的name

        //会不会按照顺序赋值?
        const {kuli,bb,c} = Asher
        console.log(kuli,bb,c)//undefined undefined undefined

    </script>
</body>

</html>