扩展运算符...的作用

扩展运算符…的作用

        一、数组:
            1.构造数组console.log(1,...[2,3,4],5)//[1,2,3,4,5]
            2.数组拷贝(浅拷贝)
                let arr=[1,2,3]
                let arr2=[...arr]//[1,2,3]
                arr2.push(4)
                console.log(arr2) //[1,2,3,4]
            3.合并数组
                var arr1 = [0, 1, 2];
                var arr2 = [3, 4, 5];
                var arr3 = [...arr1, ...arr2];// 将 arr2 中所有元素附加到 arr1 后面并返回
                //等同于
                var arr4 = arr1.concat(arr2);
                console.log(arr3,arr4) // [0,1,2,3,4,5] [0,1,2,3,4,5] 
       二、 对象:
            1.克隆对象(取出参数对象所有可遍历属性,然后拷贝到当前对象)
                注意:克隆对象为number/string/boolean时,属于深拷贝;当为object/array时属于浅拷贝
                var obj1 = { foo: 'bar', x: 42 };
                var clonedObj = { ...obj1 };
                console.log(clonedObj); // { foo: "bar", x: 42 } 
            2.合并对象
                let age = {age: 15};
                let name = {name: "Amy"};
                let person = {...age, ...name};
                console.log(person);  // {age: 15, name: "Amy"}
                注意: 自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉; 自定义的属性在拓展运算度前面,则自定义的属性将被覆盖掉;
                如:
                let person = {name: "Amy", age: 15};
                let someone = { ...person, name: "Mike", age: 17};
                let someone1 = {  name: "Mike", age: 17,...person};
                console.log(someone);  // {name: "Mike", age: 17}
                console.log(someone1);  // {name: "Amy", age: 15}
        扩展运算符与的函数参数可以结合使用:
           function f(x,y,z,v,w,u){
                console.log(x,y,z,v,w,u)
            }
            var args = [0,1,5];
            f(-1,...args,2,...[3]); // -1, 0, 1, 5, 2 ,3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值