Javascript arguments

From wikinotes
Revision as of 11:48, 6 June 2021 by Will (talk | contribs) (→‎Argument List)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

NOTE:

javascript ignores extra arguments passed to functions,
and assigns undefined to unsatisfied params

Documentation

MDN: default params https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters
MDN: arguments obj https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

Function Signature

function anniversary(name) { ... }
function anniversary(name, years = 1) { ... }    // default value (eval at call time, safe w/ mutable types )
function anniversary(name, ...invites) { ... }   // 'rest parameter' (friends array collects extra params)
function hello(name, message = "hello " + name)  // default params can refer to prev params

// keyword arguments
function log({msg, time = Date.now()})
log({msg: "did thing"})

Params

Arguments Object

The argument objects is an array that contains information about arguments passed to a function

function foo(a, b) {
  console.log(arguments.length) // number of args
  console.log(arguments[2])     // the 3rd arg
}

foo(1, 2, 3)

Spread array as arguments

You can use ...var to expand an array as function parameters.
Like splat, or list expansion in other languages.

function person(age, name, height)
person(...[123, "wesley", 5])