
ES6中的默认值写法
// 没有默认值的参数靠前写
function fn2 (x, y = 6, z = 4) {
return x + y + z
}
// 用默认值 y = 6 z = 4
console.log('fn2(1): ' + fn2(1))
// 跳过中间的 y = 6
console.log('fn2(1, null, 9): ' + fn2(1, null, 9))
function fn3 (x, y = 6, z = x + y) {
return x + y + z
}
console.log('fn3(1, null, 2):', fn3(1, null, 2))
function fn4 (x, y = 33, z = x + y) {
console.log('arguments: ' + arguments.length)
// 查看有多少个参数传入
console.log(Array.from(arguments))
// 看arguments伪数组的参数内容
return x + 10 + z
// 然而ES6中,静止函数体内的arguments使用
// 继续看下面的替代方法
}
console.log('fn4(1, null, 2): ' + fn4(1, null, 2))
ES5中的默认值写法
function fn1 (x, y, z) {
if (y === undefined) {
y = 5
}
if (z === undefined) {
z = 4
}
return x + y + z
}
console.log(fn1(1))