• es6解构赋值


    解构赋值语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中。

    数组解构赋值:

    {
        let a,b,rest;
        [a,b]=[1,2];
        console.log(a,b);    //1 2 
    
    }
    {
        let a,b,rest;
        [a,b,...rest]=[1,2,3,4,5];   
        console.log(a,b,rest);     //1 2 [ 3, 4, 5 ]
    
    }
    {
        let a,b;
        ({a,b}={a:1,b:2})
        console.log(a,b);    //1 2 
    }
    {
        let a,b,rest;
        [a,b,c=3]=[1,2];
        console.log(a,b,c);    //1 2 3
    }
        let a,b,rest;
        [a,b,c]=[1,2];
        console.log(a,b,c);    //1 2 undefined
    }

    数组解构赋值的应用

    //变量交换
    {
        let a=1,b=2;
        [a,b]=[b,a];
        console.log(a,b);  //2 1
    }
    //分别取多个返回值很方便
    {
        function f(){
            return[1,2]
        }
        let a,b;
        [a,b]=f();
        console.log(a,b);     // 1 2 
    }
    //选择性的接受需要的值
    {
        function f(){
            return[1,2,3,4,5]
        }
        let a,b;
        [a,,,b]=f();
        console.log(a,b);     // 1 4 
    }
    //不知函数返回值的长度,只想取得想要的值
    {
        function f(){
            return[1,2,3,4,5]
        }
        let a,b;
        [a,...b]=f();
        console.log(a,b);     // 1 [2,3,4,5] 
    }
    {
        function f(){
            return[1,2,3,4,5]
        }
        let a,b;
        [a,,...b]=f();
        console.log(a,b);     // 1 [3,4,5] 
    }

    对象的解构赋值

    {
        let obj={
            a:2,
            b:true
        }
        let {a,b}=obj;
        console.log(a,b); //2 true
    }
    {
    //对象
        const people = {
            name: 'lux',
            age: 20
        }
        const {age,name} = people   
    //必须为name,age,即原属性名;其顺序可以改变,相应的值不变
        console.log(`${name} --- ${age}`)
    // lux --- 20
    }
    {
        let obj={
            a:2,
            b:true
        }
        let {c,d}=obj;
        console.log(c,d); //undefined undefined
    }
    {
        let {a=3,b=5}={a:4}
        console.log(a,b); //4 5
    }
    {
        let {a:c,b:d}={a:4,b:5}
        console.log(c,d); //4 5
    }

    对象解构赋值的应用

    {
        let metaData={
            title:'abc',
            test:[{
                title:'test',
                desc:'description'
            }]
        }
        let {title:esTitle,test:[{title:cnTitle}]}=metaData; //test:[{title:cnTitle}]必须和原来的形式一模一样
        console.log(esTitle,cnTitle);     //abc test
    }
    //错误应用
    {
        let metaData={
            title:'abc',
            test:[{
                title:'test',
                desc:'description'
            }]
        }
        let {title,test:[{titl}]}=metaData;
         console.log(title,test:[{titl}]);     //报错test:[{titl}])
     }
    //可以是
    {
                let metaData = {
                    title: 'abc',
                    test: [{
                        title: 'test',
                        desc: 'description'
                    }]
                }
                let {
                    title: atitle,
                    test: btitle
                } = metaData;
                console.log(btitle,atitle);  //[{title: 'test', desc: 'description' }]   'abc'
    }
  • 相关阅读:
    SSH不超时
    python基本数据类型
    EF6.0批量插入
    AutoMapper的使用
    Json序列化,date类型转换后前端显示错误的解决方案
    Ajax跨域
    【转】C#多线程Lock使用
    Mongo集合操作Aggregate
    Json操作(DynamicJson)
    实用的VS工具
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/9109650.html
Copyright © 2020-2023  润新知