引言:扩展运算符和rest运算符就是为了解决参数未知或者对象数组未知的编程,增强代码的健壮性与简洁
开始学习
1.对象扩展运算符(...)
fun()里面的参数个数未知,这里用(...)标识,arg为参数数组,如下:
function fun(...arg){
console.log(arg[0]);
console.log(arg[1]);
console.log(arg[2]);
console.log(arg[3]);
}
fun(1,2,3);
控制台输出:arg[3]为undefined,说明程序不报错。

此外,给数组对象赋予另外一个数组对象的值时,如下:我们想给arr1的值赋给arr2,但是结果改变arr2时,arr1也跟着改变
let arr1 = ['fit','sed','thd'];
let arr2 = arr1;
console.log(arr2);
arr2.push('fth');
console.log(arr1);
控制台输出:

这种方式,arr1只是将自己的内存地址赋给arr2,也就是arr1映射到了arr2,系统并没有给arr2开辟新的内存空间,可以用扩展运算符来做,正确写法如下:
let arr1 = ['fit','sed','thd'];
//let arr2 = arr1;
let arr2 = [...arr1]; //应该这么写,表示的是将arr1里面的值赋给arr2,而不是地址
console.log(arr2);
arr2.push('fth');
console.log(arr1);
控制台输出:

2.rest运算符(...)
上例子:
function fun(first,...arg){
console.log(arg.length);
}
fun(0,1,2,3,4,5,6,7);
控制台输出:

因为第一个参数是确定的,所以长度里面是不包括第一个的,也就是说:总参数-已知参数
不信我们可以打印出来参数值
function fun(first,...arg){
for(let val of arg){
console.log(val);
}
}
fun(0,1,2,3,4,5,6,7);
控制台输出:

可以看出,0是不输出来的。
以上就是扩展运算符和rest运算符
该博客主要介绍ES6中的扩展运算符和rest运算符。扩展运算符可解决参数或对象数组未知的编程问题,增强代码健壮性与简洁性,还能避免对象赋值时的内存映射问题;rest运算符可处理已知部分参数时的参数计算。
525

被折叠的 条评论
为什么被折叠?



