【摘要】 本文是对自己学习ES6的学习笔记回顾,后面是概要: 本文介绍了ES6中的rest和spread操作符。Rest操作符用于函数参数列表中,允许函数接收任意数量的参数,并将它们存储在一个数组中。Spread操作符则在调用函数或构造数组和对象时使用,允许将数组或对象展开为单独的元素或属性。文章通过代码示例展示了rest操作符如何收集剩余参数,以及spread操作符在合并数组和对象中的应用.
原创声明:文章首发地址:https://bbs.huaweicloud.com/blogs/431972,本文是由本作者在华为云社区的首发后搬运而来,不存在抄袭.
rest和spread
个人比较喜欢在代码中写注释,因此后续的代码和知识点中,很多解释会在代码中以注释的方式存在
rest和spread 代表参数列表中多个普通参数 ,其中普通函数和箭头函数中都支持使用
rest作为形参来使用
作用:作为形参用来接收多余的参数
//js中可变参数叫rest 剩余的,解决剩余的参数接受问题
//可以接收剩余的一个或多个参数
//一个参数列表中只能是最后一个,因此就只能是唯一个
let fun1= (a,b,c,d,... arr)=>{
console.log(a,b,c,d);
console.log(arr);
};
fun1(1,2,3,4,5,6,7,8,9);
arr接收了剩余的参数值,如下图所示:
spread作为实参来使用,可以有很多应用场景
/* spread 展开 rest在实参上的使用 */
let arr = [1,2,3];
// let info = ...arr // ...arr >> 1,2,3 这么写是错的,必须在调用方法时,作为实参使用
fun2 = (a,b,c)=>{
console.log(a,b,c);
}
fun2(arr); //传给第一个参数
fun2(...arr); //分别赋值给a,b,c
spread的应用场景
1.快速合并数组,spread,作为实参变量使用
作为实参变量,然后作为变量值来使用
/* spread的应用场景 */
//1.快速合并数组,spread,作为实参变量使用
let a = [1,2,3];
let b = [4,5,6];
let c = [7,8,9];
//合并数组
let d = [...a,...b,...c];
console.log(d);
2.快速合并对象
将对象的属性值作为属性值进行传入并进行合并
//2.快速合并对象
//将多个对象的属性作为值传入合并
let person1={name:"张三"};
let person2={age:"10"};
let person3={gender:"boy"};
let person4={...person1,...person2,...person3};
console.log(person4);