扩展运算符 REST

扩展运算符 REST

​ 扩展运算符指的是…标识符 这个东西是一种新的运算模式 主要的作用有三点

1.解开数组 对象等数据结构

​ 使用该运算符 我们可以直接使用…后面跟上自定义的标识符 进行解开数据结构

let obj = {
    name : 'Eric',
    age : 18,
    sex : '男'
}
let arr = [11,33,55,77,'你好',3.14,null,undefined,{name:'Mary'}];

// 使用扩展运算符解开数组
console.log(...arr);

2.浅拷贝

​ 如果是单层数据 可以实现深拷贝 但是如果说是多层

​ 比如说数组里面的对象或者是对象中的数组 那么我们只能实现浅拷贝

// 浅拷贝
let arr1 = [1,2,3,{name:'Mary'}];
let arr2 = [...arr1];
console.log(arr2);
arr1.push(4)
console.log(arr1);
console.log(arr2);

arr1[3].age = 18;
console.log(arr1);
console.log(arr2);
let obj = {
    name : 'Eric',
    age : 18,
    sex : '男'
}

let newObj = {
    ...obj
}
console.log(newObj);

3.传递不定参数

​ 也就是剩余参数 在常规函数中 我们使用arguments传递不定参数 但是在箭头函数中 不允许使用arguments

​ 可以使用剩余参数 参数的名字自定义 参数前面加上…

// rest剩余参数

// let sum = (a,b)=>{
//     return a + b;
// }
// console.log(sum(1,2,3));

// 传递不定参数  使用rest运算符
/*
    在使用的时候  形参前面加上...  形参的名字自定义
    他可以接受多个参数  那么参数会组成一个数组  带入到函数体中
    在函数体中使用的时候  不要在加上...
    使用的时候注意   在一个函数中  只能有一个rest参数
*/
let sum = (...item)=>{
    // console.log(item);
    let total = 0;
    item.forEach(element => {
        total += element
    });
    return total;
}

console.log(sum(1,2,3,4,5,6));


// rest运算符可以和普通参数一起进行传递  但是注意  普通参数只能写在前面
let sum = (a,...item)=>{
    // console.log(item);
    let total = 0;
    item.forEach(element => {
        total += element
    });
    return total;
}

console.log(sum(1,2,3,4,5,6));

​ 总结

​ arguments和rest参数之间的区别

​ 1.rest参数必须在形参列表中定义形参 但是arguments在形参列表中不能写任何内容

​ 2.rest参数可以和普通参数一起传递

​ 3.rest参数可以应用于箭头函数 但是arguments 不能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值