显式参数

未提供隐式参数,参数会默认设置为: undefined

  1. function add (x, y) {
  2. console.log(x, y)
  3. }
  4. add(3, 4); // 3 4
  5. add(3); // 3 undefined


隐式参数

JavaScript 函数有个内置的对象 arguments 对象。

  1. function add () {
  2. console.log(arguments)
  3. console.log(arguments.length)
  4. // 解构
  5. console.log(...arguments)
  6. // let {a, b, c} = arguments; error
  7. let [a, b, c] = arguments;
  8. console.log(a, b, c)
  9. }
  10. function fn() {}
  11. add(3, 4, fn);
  12. // [Arguments] { '0': 3, '1': 4, '2': [Function: fn] }
  13. // 3
  14. // 3 4 [Function: fn]
  15. // 3 4 [Function: fn]

arguments 对象

截屏2021-11-22 下午2.36.52.png

arguments 对象转数组

  1. Array.prototype.slice.call(arguments)
  2. // Array.from
  3. Array.from(arguments)
  4. // es6 写法
  5. [...arguments]

ES6写法reset参数

同上⬆️

  1. function add (a, ...reset) {
  2. }