• 六、扩展运算符


    可分为 数组的扩展运算符 [...] 和对象的扩展运算符 {...}  两大类

    作用1:实现浅拷贝,避免污染数据。

    特点:浅拷贝后得到的对象/数组,与源对象/数组互不影响

    【实际应用:上拉加载数据】

    代码实现:

    let arr=[2,3,4,5];
    let obj={name:"李四",age:18,grade:"One",mark:"A"};
    
    let newArr=[...arr]; //newArr与arr指向不同的内存空间,实现浅拷贝
    let newObj={...obj} ;//newObj与obj指向不同的内存空间,实现浅拷贝
    
    console.log(newArr,arr);
    console.log(newObj,obj);
    View Code

    作用2:实现数组的合并

    特点:合并数组 、合并对象

    【实际应用:前端通过组合 对象,返回数据给后台】

    代码实现:

            let data=[   //第一页数据
                {id:1,title:"羊肉串"},
                {id:2,title:"猪肉串"},
                {id:3,title:"牛肉串"},
            ];
            let newData=[   //第二页数据
                {id:4,title:"啤酒"},
                {id:5,title:"可乐"},
                {id:6,title:"雪碧"},
                {id:7,title:"达芬奇"},
            ];
       
             let data2=[...data,...newData]; //合并的方式1
             newData.push(...data);//合并的方式2
             newData=[...data];//错误合并1:newData会被覆盖
             newData.push([...data]);//错误合并2:将data作为整体放进去了
    
             console.log(newData,data2);
    View Code

    es6可以用扩展运算符实现浅拷贝,es5可以用for循环实现浅拷贝。

    es5用for循环实现数组的浅拷贝

    var arr=[2,3,4,5];
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        newArr[i]=arr[i];
    }
    newArr.push(7);
    console.log(newArr);
    View Code

    es5用for循环实现对象的浅拷贝

    var obj={name:"李四",age:18,grade:"One",mark:"A"};
    var newObj={};
    
    for(key in obj){
        
         newObj[key]=obj[key];
    }
    
    newObj.English=90;
    console.log(newObj,obj);
    View Code
  • 相关阅读:
    jsp——学习篇:简单使用CSS
    MongoDB分片式服务器集群配置
    PHP上传文件
    【转】【thinkphp3.x】thinkphp3.x中display方法及show方法的使用
    (转)Mysql用户与权限管理
    MonkeyRunner 之如何获取APP的Package Name和Activity Name
    一个典型的PHP分页实例代码分享
    HTML meta charset 定义网页编码信息
    【转】PHP连接MySQL数据库
    一个漂亮的php验证码类(分享)
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/15211835.html
Copyright © 2020-2023  润新知