ES6学习笔记(4)--扩展运算符和rest运算符

引言:扩展运算符和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学习笔记(3)--变量的解构赋值

下一篇:ES6学习笔记(5)--字符串模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值