1 函数参数默认值
1.1 ES5
function f(x, y, z) {
if (y === undefined) {
y =1000
}
if (z === undefined) {
z =100
}
return x + y + z
}
console.log(f(1))
1.6 ES6
// 指定默认值
function f(x, y = 10, z = 100) {
return x + y + z
}
console.log(f(1,undefined,1))
// 指定默认值
function f(x, y = 10, z = x + y) {
return x + y + z
}
// 指定默认值
function f(x, y = 10, z = x + y) {
console.log(Array.from(arguments))
return x + y + z
}
console.log(f(1,undefined,2))
- 处理不确定的参数
function sum(){
let sum = 0;
// 将伪数组转换为数组
// Array.prototype.forEach.call(arguments, function (item) {
// sum += item *1
// })
Array.from(arguments).forEach(function (item) {
sum += item *1
})
return sum;
}
console.log(sum(1,2,3))
// Rest 参数
function sum(...num){
let num = 0
num.forEach(function (item) {
num += item * 1
})
return num
}
console.log(sum(1,2,3))
- rest 参数的逆运算
ES5
function sum(x = 1, y = 2, z = 3) {
return x + y + z
}
let data = [6, 6, 6]
console.log(sum.apply(this, data))
ES6
function sum(x = 1, y = 2, z = 3) {
return x + y + z
}
let data = [6, 6, 6]
console.log(sum(...data))