This site is mobile accessible. Press the "Tap Here" button to use a different font-size.
Tap Here!
Smartphone icons created by Freepik - Flaticon
11.2 Function Parameters
A JavaScript function does not perform any checking on parameter values (arguments).
Function Parameters and Arguments
Earlier in this tutorial, you learned that functions can have parameters :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
Function parameters are the names listed in the function definition.
Function arguments are the real values passed to (and received by) the function.
Parameter Rules
JavaScript function definitions do not specify data types for parameters.
JavaScript functions do not perform type checking on the passed arguments.
JavaScript functions do not check the number of arguments received.
Default Parameters
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:
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
Default Parameter Values
ES6 allows function parameters to have default values.
If y is not passed or is undefined, then y = 10.
function myFunction(x, y = 10) {
return x + y;
}
myFunction(5);
Function Rest Parameter
The rest parameter (...) allows a function to treat an indefinite number of arguments as an array:
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
The Arguments Object
JavaScript functions have a built-in object called 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:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Or create a function to sum all input values:
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
If a function is called with too many arguments (more than declared), these arguments can be reached using the arguments object.
Arguments are Passed by Value
The parameters, in a function call, are the function's arguments.
JavaScript arguments are passed by value : The function only gets to know the values, not the argument's locations.
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 .
Objects are Passed by Reference
In JavaScript, object references are values.
Because of this, objects will behave like they 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 .
JavaScript icons used in the buttons provided by ICONS8.COM . Smartphone icons created by Freepik - Flaticon
Example files created in this module:
JS Functions - Function Declaration
JS Functions - Function Expressions part 1
JS Functions - Function Expressions part 2
JS Functions - The Function() Constructor part 1
JS Functions - The Function() Constructor part 2
JS Functions - Self-Invoking Functions
JS Functions - Functions Can Be Used as Values part 1
JS Functions - Functions Can Be Used as Values part 2
JS Functions are Objects part 1
JS Functions are Objects part 2
JS Arrow Functions part 1
JS Arrow Functions part 2
JS Default Parameters
JS Functions - Default Parameter Values
JS functions - The Rest Parameter
JS Functions - Finding the largest number
JS Functions - Sum of all arguments
JS Functions - Invoking a Function as a Function part 1
JS Functions - Invoking a Function as a Function part 2
JS Functions - The Global Object
JS Functions - Invoking a Function as a Method part 1
JS Functions - Invoking a Function as a Method part 2
JS Functions - Invoking a Function with a Function Constructor
JS Functions - All Functions are Methods
JS Functions - The JavaScript call() Method part 1
JS Functions - The JavaScript call() Method part 2
JS Functions - The JavaScript call() Method with Arguments
JS Functions - The JavaScript apply() Method
JS Functions - The apply() Method with Arguments
JS Functions - The call() Method with Arguments
JS Math.max() part 1
JS Math.max() part 2
JS Math.max() part 3
JS Math.max() part 4
JS Math.max() part 5
JS Function bind() part 1
JS Function bind() part 2
JS Function bind() part 3
JS Function bind() part 4
JS Functions - Global Variables part 1
JS Functions - Global Variables part 2
JS Functions - Global Variables part 3
JS Function Closures - Counter Dilemma part 1
JS Function Closures - Counter Dilemma part 2
JS Function Closures - Counter Dilemma part 3
JS Function Closures - Nested Functions
JS Closures