Ad

Ad

Sunday, 4 May 2014

JavaScript 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.
The parameters are listed in the function definition:
function functionName(parameter1, parameter2, parameter3) {
  code to be executed
}
When the function is invoked (called), the values used for these parameters, are called arguments.

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.

Parameter Defaults

If a function is called with missing arguments (less than declared in the definition), the missing values are set to:
undefined
Sometimes this is acceptable, sometimes it is better to assign a default value to the parameter.
This can be done like this:

Example

function myFunction(x, y) {
  if (y === undefined) y = 1;
  return x * y
}

Try it Yourself »
Or, even simpler, like this:

Example

function myFunction(x, y) {
  y = y || 1;
  return x * y
}

Try it Yourself »
If a function is called with too many arguments (more than declared in the definition), these arguments cannot easily be referred to, because they don't have a name. They can only be reached in 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, 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.

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:

Example

x = findMax(1,123,500,115,44,88);

function findMax() {
  max = 0;
  for(var x = 0; x < arguments.lenght; x++) {
    if (arguments[i] > max) max = arguments[i];
  }
  return max;
}

Try it Yourself »

No comments:

Post a Comment