函数参数
默认参数
ES6提供了更方便的写默认参数方式
function getSum(a=10, b=2) {
return a+b
}
getSum() //12
getSum(1, 3) //4
getSum(1) //3
getSum(undefined, 10) //20 当要省略不是最后的参数时 需要使用也只能使用undefined
剩余参数
用于当参数不止一个时,方便我们一次获取多个参数
function sum(...args) {
return args.reduce((prev, current) => prev+current, 0)
}
sum(1,2,3,4) //10
const numbers = [11, 32, 24, 12]
//数组需要扩展运算符
sum(...numbers) //79
function userScoreSum(name, ...score) {
const sum = score.reduce((pre, curr) => pre+curr, 0)
console.log(`${name}得分为${sum}`)
}
userScoreSum("lyy", 100, 99, 99) //lyy得分为298
扩展运算符
将可迭代(遍历)对象每个元素扩展为一个参数序列
const numbersArr1 = [1, 3, 6]
const numbersArr2 = [2, 4, 6]
//[1, 3, 6, 2, 4 ,6]
const totalNums = numbersArr1.concat(numbersArr2)
//[1, 3, 6, 55, 2, 4 ,6]
const totalNums2 = [...numbersArr1, 55,...numbersArr2]
扩展运算符 运用
获取数组副本
我们经常使用其来实现获取可遍历对象的副本,而避免其引用
//避免使用引用类型 而操作num3时 影响num2数组 const totalNums3 = [...totalNums2]
替代Array.from() 获取每个字符 将可遍历或者类数组对象变为数组对象
const lis = [...document.querySelectorAll("li")]
扩展数组元素拼接
将数组元素扩展为函数参数
const numbersArr1 = [1, 3, 6] const numbersArr2 = [2, 4, 6]
numbersArr1.push(numbersArr2)
console.log(numbersArr1) //[1, 3, 6, [2, 4, 6]]]
numbersArr1.push(...numbersArr2) //[1, 3, 6, 2, 4, 6]