【005】函数默认值 - 图1

ES6中的默认值写法

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

ES5中的默认值写法

  1. function fn1 (x, y, z) {
  2. if (y === undefined) {
  3. y = 5
  4. }
  5. if (z === undefined) {
  6. z = 4
  7. }
  8. return x + y + z
  9. }
  10. console.log(fn1(1))