Rest参数 与Spread 语法
-Rest 参数就是让函数显示支持任意数量的参数
-Spread语法
function sum(a,b){
console.log(arguments.length);//7
return a+b;
}
let func =()=>{
console.log(arguments)//undefined
}
console.log(func(1,2,3,4,5))
function sum(...args){
console.log(args);//(7) [1, 2, 3, 4, 5, 6, 7] 后面的会覆盖前面的
let sum =0;
for(const arg of args){
sum+=arg
}
return sum; //28
}
console.log(sum(1,2,3,4,5,6,7));//3
//let arr=[1,2,3,4,5,6,7];
//let sum1=arr.reduce((sum,item)=>{
// return sum+item
//},0)
//console.log(sum1)
function sum1(...args){
let sum=args.reduce((sum2,item)=>{
return sum2+item
},0)
return sum
}
console.log(sum1(1,2,3,4,5,6,7,89))
/*function showName(firstName,lastName,...titles){
console.log(firstName,lastName,titles);
}
showName("xuda","mixia",1,2,3,4,5,6,[212121]);//xuda mixia(7) [1, 2, 3, 4, 5, 6, Array(1)]
//二维数组*/
function showName(firstName,lastName,...titles){
console.log(firstName,lastName,titles[1]);
}
showName("xuda","mixia",...["11","22","33"]);//(7) [1, 2, 3, 4, 5, 6, Array(1)]
//二维数组
let arr=[1,2,3,4,5,6]
let arr2=[7,8,9]
//max(1,2,3,4,5,6,7,8,9)
console.log(Math.max(...arr,...arr2))//9
//合并数组
let arr3=[0,...arr,20,...arr2,10]
//拷贝数组
let tmp=[...arr]
console.log(tmp)//(6) [1, 2, 3, 4, 5, 6]
let obj = {a:1,b:2,c:3};
let clone ={...obj};
console.log(obj===clone)//false