js三参剩余参数,动态参数,默认参数,加js的...展开运算符(笔记)

其中默认参数,就是可以在传入数据的时候直接给他一个默认值,例如:

function sum(numbers = 6) {
    return numbers.reduce((total, num) => total + num, 0);
}

动态参数是提出的一个特殊的对象arguments,

它用于接受所有的实参,(但是实际的话基本没用,因为他提出的比较早,后来的剩余参数有他全部的功能并且弥补了他的缺陷 不能使用数组方法,因为他是一个类似数组的对象,它并不是一个真正的数组)例如:

function sum() {
    return arguments.reduce((total, num) => total + num, 0);
}

sum(1,2,3,4,5,6,7,8,9)

剩余参数:是es6推出...展开运算符中的功能之一,他是可以接受任意数量的参数,并将它们作为一个数组存储在剩余参数中。例如:

function sum(...numbers) {
    return numbers.reduce((total, num) => total + num, 0);
}

...的功能还有展开语法它允许你在数组、对象等地方使用 ... 来将数组展开成为独立的元素,或者将对象展开成为独立的属性。例如:

const arr1 = [1, 2, 3];
const arr2 = [0, ...arr1, 4, 5];
// arr2 现在为 [0, 1, 2, 3, 4, 5]
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 0, 4, 5];
// arr2 现在为 [ 1, 2, 3, 0 , 4, 5]

其中他还有一些小细节,比如说:属性覆盖,对象展开语法 { ...obj1, ...obj2 } 中,如果两个对象具有相同的属性名,则后面的对象中的属性会覆盖前面的对象中相同属性名的属性。例如

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const mergedObj = { ...obj1, ...obj2 };
//输出{ a: 1, b: 3, c: 4 }

在es9中他推出的新功能剩余对象,它允许你在对象字面量中使用 ... 来收集剩余的键值对为一个对象。

const { a, ...rest } = { a: 1, b: 2, c: 3 };
console.log(rest); // 输出 { b: 2, c: 3 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值