函数默认参数
es5 基本数据类型作为默认参数
let func = function(paramA, param) {
paramA = 20 || paramA
paramB = 30 || paramB
return paramA + paramB
}
console.log(func())
es6 基本数据类型作为默认参数
let func = function(paramA = 20, paramB = 30) {
return paramA + paramB
}
console.log(func())
console.log(func(5))
表达式作为默认参数
let func = function(paramA = 20, paramB = getVal()) {
return paramA + paramB
}
console.log(func())
function getVal(val = 10) {
return val + 5
}
剩余运算符使用
es5 在没有剩余运算符时的处理操作
const target = {
name: 'Tom',
id: 123,
age: 40
}
console.log(getKey(target, 'name', 'age'))
console.log(target)
function getKey(target) {
const obj = Object.create(null)
for(let i = 1; i < arguments.length; i++) {
console.log(arguments[i])
obj[arguments[i]] = target[arguments[i]]
}
return obj;
}
使用ES6 剩余运算符的操作
const target = {
name: 'Tom',
id: 123,
age: 40
}
console.log(getKey(target, 'name', 'age'))
console.log(target)
function getKey(target, ...arr) {
console.log(arr)
const obj = Object.create(null)
for(let i = 0; i < arr.length; i++) {
obj[arr[i]] = target[arr[i]]
}
return obj;
}