es6 ...运算符 , rest 参数使用,与arguments参数的区别

展开运算符(类似嵌套)

可以用在数组和对象上

let a = [1,2,3];
let b = [0, ...a, 4]; // [0,1,2,3,4]
let obj = { a: 1, b: 2 };
let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 }
let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }

剩余运算符 

let a = [1,2,3];
let [b, ...c] = a;
b; // 1
c; // [2,3]

// 也可以
let a = [1,2,3];
let [b, ...[c,d,e]] = a;
b; // 1
c; // 2
d; // 3
e; // undefined

// 也可以
function test(a, ...rest){
// rest为剩余参数
console.log(a); // 1
console.log(rest); // [2,3]
}
test(1,2,3)

rest参数(剩余参数,与...运算符一起使用)

function foo(a, b, ...rest) {
    console.log('a = ' + a); 
    console.log('b = ' + b); 
    console.log(rest); 
}
foo(1, 2, 3, 4, 5);// 结果:// a = 1// b = 2// Array [ 3, 4, 5 ]

Rest参数和arguments对象的区别:

  • rest参数只包括那些没有给出名称的参数,arguments包含所有参数
  • arguments 对象不是真正的数组,而rest 参数是数组实例,可以直接应用sort, map, forEach, pop等方法
  • arguments 对象拥有一些自己额外的功能
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值