1.认识剩余参数

1.认识剩余参数

const add = (x,y,z,...args)=>{}

2.剩余参数的本质

const add = (x,y,...args)=>{
    console.log(x,y,args);
}
  add(); //undefined undefined Array(0)
  add(1,2); //1 2 []
  add(1,2,3,5,45);//1 2 (3) [3, 5, 45]

2.剩余参数的注意事项

2.1 箭头函数的剩余参数

箭头函数的参数部分即使只有一个剩余参数,也不能省略圆括号

const add = (...args)=>{}

2.2使用剩余参数替代 arguments 获取实际参数

const add = function(){
	console.log(arguments);
};
⬇⬇⬇⬇
⬇⬇⬇⬇
⬇⬇⬇⬇
const add = (args)=>{
    console.log(args);
}

2.3剩余参数的位置

剩余参数只能是最后一个参数,之后不能再有其他参数,否则会报错

3.认识展开运算符

Math.min(3,1,2); //1

 const Array = [1,2,3,4,5,6,7,8,9];
  console.log(...Array); //1 2 3 4 5 6 7 8 9
  console.log(Math.min(...Array),Math.max(...Array)); // 1 9

4.区别剩余参数和展开运算符

4.1根本区别

//展开运算符
// [3,1,2]-->3,1,2

//剩余参数
// 3,1,2-->[3,1,2]

5.数组展开运算符的应用

5.1复制数组

const a = [1,2];
const b = a;
a[0] = 3;
console.log(b); // [3,2] 数组b只是数组a的引用,并不是一个新的数组,a数组的值发生变化,b数组的值也会跟着一起变化
// 复制数组
const c = [...a];

5.2 合并数组

const a = [1,2];
const b = [3];
cosnt c = [4,5];
console.log([...a,...b,...c]); //[1,2,3,4,5]

5.3 字符串转为数组

//字符串可以按照数组的形式展开console.log(...'LiHao') //L i H a oconsole.log([...'LiHao']); //['L','i','H','a','o']

5.4 常见的类数组转为数组

arguments

function func(){    console.log(arguments);   // 转为类数组    console.log([...arguments]);// [1,2] }func(1,2)

NodeList

console.log([...document.querySelectorAll('p')]);

6.对象展开运算符用法

6.1展开对象

对象不能直接展开,必须在{}中展开

const apple = {    color:'红色',    shape:'球形',    taste:'甜'};//形成一个新的对象console.log({...apple}); //{color: "红色", shape: "球形", taste: "甜"}console.log({...apple}) === apple //false// 对象的展开:把属性罗列出来,用逗号隔开,放到一个{}中,构成一个新的对象

6.2合并对象

新对象拥有全部属性,相同属性,后者覆盖前者

const apple = {    color:'红色',    shape:'球形',    taste:'甜'};const pen = {    color:'蓝色',    shape:'圆柱形',    use:'写字'};//相同的属性 会被后面的覆盖掉console.log({...apple,...pen}) //{color: "蓝色", shape: "圆柱形", taste: "甜", use: "写字"}console.log({...pen,...apple}) //{color: "红色", shape: "球形", use: "写字", taste: "甜"}
posted @ 2021-06-01 21:43  平平无奇小乐一  阅读(79)  评论(0编辑  收藏  举报