扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要为大家展示了如何使用ES6扩展运算符和rest运算符,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
创新互联公司成立十多年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供网站制作、成都网站建设、网站策划、网页设计、申请域名、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联公司通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。
本文实例讲述了ES6扩展运算符和rest运算符用法。分享给大家供大家参考,具体如下:
运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁。
运算符有两种:对象扩展运算符与rest运算符。
以前我们编程是传递的参数一般是确定,否则将会报错或者异常,如下:
function test(a,b,c,d) { console.log(a) console.log(b) console.log(c) console.log(d) console.log(e)//e is not defined } test(1,2,3,4)
参数固定,多余的参数会出错。
但我们又想传递多个参数,但是不确定参数的个数,这时候可以使用对象扩展运算符来作参数。
function test1(...arg) { console.log(arg[0]);//1 console.log(arg[1]);//2 console.log(arg[2]);//3 console.log(arg[3])//4 console.log(arg[4])//5 console.log(arg[5])//undefined } test1(1,2,3,4,5)
这时候程序是不会报错的,多余取值返回的结果是undefined。这说明是可以传入多个值,并且就算方法中引用多了也不会报错。
我们先用一个例子说明,我们声明两个数组arr1和arr2,然后我们把arr1赋值给arr2,然后我们改变arr2的值,你会发现arr1的值也改变了,因为我们这是对内存堆栈的引用,而不是真正的赋值。
let arr1=['i','love','you']; let arr2=arr1; console.log("arr2====",arr2); arr2.push('too'); console.log("arr1====>",arr1);
控制台输出的结果为:
["i", "love", "you"]
["i", "love", "you", "too"]
这是我们不想看到的,可以利用对象扩展运算符简单的解决这个问题,现在我们对代码进行改造。
let arr1=['i','love','you']; let arr2=[...arr1]; console.log(arr2); arr2.push('too'); console.log(arr1);
最终可以看到我们的arr1并没有改变,简单的扩展运算符就解决了这个问题。
rest参数作用: 将多余的逗号分隔的参数序列转换为数组参数
注意: rest参数必须是最后一个参数,否则报错。
rest运算符与对象扩展运算符有很多类似之处,它也用…(三个点)来表示,比如:
function test(first,...arg){ console.log("first==>",first)//0 console.log("arg=====>",arg) } test(0,1,2,3,4,5,6,7);
输出结果为:
first==> 0
arg=====>[1, 2, 3, 4, 5, 6, 7]
用for…of循环来进行打印出arg的值
function test(first,...arg){ for(let val of arg){ console.log(val) } } test(0,1,2,3,4,5,6,7);
结果为:
1,2,3,4,5,6,7
最后总结:
或者说:放在被赋值一方是rest 运算符。放在赋值一方式 spread运算符。
以上就是关于如何使用ES6扩展运算符和rest运算符的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流