
ES6中的默认值写法
// 没有默认值的参数靠前写function fn2 (x, y = 6, z = 4) { return x + y + z}// 用默认值 y = 6 z = 4console.log('fn2(1): ' + fn2(1))// 跳过中间的 y = 6console.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))