一,拓展运算符(…)

拓展运算符(…):它会以参数序列的形式输出,更白话讲,比如数组,它可以把数组里面的东西一个一个的输出出来,例如

1 let arr1 =["你","好","V","U","E",1,2] 
2 console.log(...arr1,"--------arr1拓展结果")

 

 

 

 

二,拓展运算符的使用场景

场景一:合并

拓展运算符是可以把两个数组进行合并,例如:

    //数组的合并
1
let arr1 = [0, 1, 2]; //数组1 2 let arr2 = [3, 4, 5, 6]; //数组2 3 let result = [...arr1, ...arr2]; //合并结果 4 console.log(result,"拓展运算符的合并数组结果"); //输出

 

 

 

场景二:数组分割

数组分割:例如下面的例子中,

1     // 数组的分割
2     let [arr1,...arr2] = [1,2,3,4,5,6]
3     console.log("arr1的结果",arr1);  //arr1 输出结果是1
4     console.log("arr2的结果",arr2);  //arr2 输出结果是一个数组[2,3,4,5,6]
5     console.log("...arr2拓展运算符的结果",...arr2);  //...arr2 拓展运算符 输出结果是 2,3,4,5,6

 

 

 

 

场景三:拷贝

数组拷贝:深拷贝 浅拷贝我这两个还没搞明白,但这里的拷贝,我就单纯的理解为 把一个数组的值 复制 给 另外一个数组 例如:

1     let arr1 = [1,2,3]
2     let arr2 = [...arr1]
3     console.log("arr1的结果是:",arr1);  //arr1的输出结果是[1,2,3]
4     console.log("arr2的结果是:",arr2);  //arr2的输出结果是[1,2,3]
5     console.log("arr1与arr2是否一样:",arr1===arr2);  //输出false

 

 

 也许有人会有疑问,为什么arr1===arr2为false呢,这个我还得研究研究,我问一个大哥,大哥说是地址不一样了,我得去好好理解下这个地址是什么意思

 

场景四:对象的使用

拓展运算符也可以针对对象使用,例如:

       // 对象
        let {x,y,...z} = {x:1,y:2,a:3,b:4}    //let{x,y,...z} 这个的意思是解构 如果不太熟悉的话可以去了解了解
        console.log("x是什么:",x);  //输出1
        console.log("y是什么:",y);  //输出2
        console.log("z是什么:",z);  //输出{a:3,b:4}
        console.log("...z拓展运算符是什么:",...z); //输出不出来 控制台打印不出来  应该是不可以这样写

 

对于拓展运算符我也只暂且了解这么些啦,有补充的可以给我留言,前端的小伙伴们,我们一起加油!

原文地址:http://www.cnblogs.com/yzqn02/p/16817409.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性