ES6扩展运算符和rest运算符

11 篇文章 0 订阅
3 篇文章 0 订阅

扩展运算符和rest运算符,它们都是…(三个点)。它们可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁。

对象扩展运算符(…):

当编写一个方法时,我们允许它传入的参数是不确定的。这时候可以使用对象扩展运算符来作参数,看一个简单的列子:

function arg(...arg){
    console.log(arg[0]); // 1
    console.log(arg[1]); // 2
    console.log(arg[2]); // 3
    console.log(arg[3]); // undefined

}
arg(1,2,3);

我们看到控制台输出了 1,2,3,undefined,这说明是可以传入多个值,并且就算方法中引用多了也不会报错。

扩展运算符的用处:

声明两个数组arr1和arr2,然后把arr1赋值给arr2,然后我们改变arr2的值,会发现arr1的值也改变了,因为这是对内存堆栈的引用,而不是真正的赋值。

let arr1=['www','baidu','com'];
let arr2=arr1;
console.log(arr2); 
arr2.push('yunzhi'); 
console.log(arr1);

控制台输出:

["www", "baidu", "com"]
["www", "baidu", "com", "yunzhi"]

这是我不想看到的,可以利用对象扩展运算符简单的解决这个问题,现在对代码进行改造。

let arr1=['www','baidu','com'];
//let arr2=arr1;
let arr2=[...arr1];
console.log(arr2); // ["www", "baidu", "com"]
arr2.push('yunzhi');
console.log(arr2); // ["www", "baidu", "com", "yunzhi"]
console.log(arr1); // ["www", "baidu", "com"]

现在控制台预览时,可以看到arr1并没有改变,简单的扩展运算符就解决了这个问题。

rest运算符

对象扩展运算符与rest运算符有很多相似之处,甚至很多时候不用特意去区分。它也用…(三个点)来表示,先来看一个例子。

function arg(first,...arg){
    console.log(arg.length);
}

arg(0,1,2,3,4,5,6,7);

这时候控制台打印出了7,说明arg里有7个数组元素,这就是rest运算符的最简单用法。

如何循环输出rest运算符

这里用for…of循环来进行打印出arg的值,这里只是简单使用一下。

function arg(first,...arg){
    for(let val of arg){
        console.log(val);
    }
}

arg(0,1,2,3,4,5,6,7);

for…of的循环可以避免我们开拓内存空间,增加代码运行效率,所以建议大家在以后的工作中使用for…of循环。至少从代码量上我们少打了一些单词,这就是开发效率的提高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值