Earlier in this tutorial, you learned that functions can have parameters:
Function parameters are the names listed in the function definition.
Function arguments are the real values passed to (and received by) the function.
If a function is called with missing arguments (less than declared), the missing values are set to: undefined
Sometimes this is acceptable, but sometimes it is better to assign a default value to the parameter:
Or, even simpler:
|If y is defined, y || returns y, because y is true, otherwise it returns 0, because undefined is false.|
If a function is called with too many arguments (more than declared), these arguments cannot be referred, because they don't have a name. They can only be reached in the arguments object.
The argument object contains an array of the arguments used when the function was called (invoked).
This way you can simply use a function to find (for instance) the highest value in a list of numbers:
Or create a function to summarize all input values:
The parameters, in a function call, are the function's arguments.
If a function changes an argument's value, it does not change the parameter's original value.
Changes to arguments are not visible (reflected) outside the function.
Because of this, it looks like objects are passed by reference:
If a function changes an object property, it changes the original value.
Changes to object properties are visible (reflected) outside the function.