Java Script Syntax - Functions

Functions

A function is a block with a (possibly empty) parameter list that is normally given a name. A function may use local variables. If you exit the function without a return statement, the value undefined is returned.

function gcd(segmentA, segmentB) { var diff = segmentA - segmentB; if (diff == 0) return segmentA; return diff > 0 ? gcd(segmentB, diff) : gcd(segmentA, -diff); } alert(gcd(60, 40)); // 20 var mygcd=gcd; // mygcd is a reference to the same function as gcd. Note no argument s. alert(mygcd(60, 40)); // 20

Functions are first class objects and may be assigned to other variables.

The number of arguments given when calling a function may not necessarily correspond to the number of arguments in the function definition; a named argument in the definition that does not have a matching argument in the call will have the value undefined (which can be implicitly cast to false). Within the function, the arguments may also be accessed through the arguments object; this provides access to all arguments using indices (e.g. arguments, arguments, ... arguments), including those beyond the number of named arguments. (While the arguments list has a .length property, it is not an instance of Array; it does not have methods such as .slice, .sort, etc.)

function add7(x, y) { if (!y) { y = 7; } alert(x + y + arguments.length); }; add7(3); // 11 add7(3, 4); // 9

All parameters are passed by value (for objects, it is the reference to the object that is passed).

var obj1 = {a : 1}; var obj2 = {b : 2}; function foo(p) { p = obj2; // Ignores actual parameter p.b = arguments; } foo(obj1, 3); // Does not affect obj1 at all. 3 is additional parameter alert(obj1.a + " " + obj2.b); // writes 1 3

Functions can be declared inside other functions, and access the outer function's local variables. Furthermore they implement full closures by remembering the outer function's local variables even after the outer function has exited.

var v = "Top"; var bar, baz; function foo { var v = "fud"; bar = function { alert(v) }; baz = function(x) { v = x; }; } foo; baz("Fugly"); bar; // Fugly (not fud) even though foo has exited. alert(v); // Top

Read more about this topic:  Java Script Syntax

Famous quotes containing the word functions:

    Adolescents, for all their self-involvement, are emerging from the self-centeredness of childhood. Their perception of other people has more depth. They are better equipped at appreciating others’ reasons for action, or the basis of others’ emotions. But this maturity functions in a piecemeal fashion. They show more understanding of their friends, but not of their teachers.
    Terri Apter (20th century)

    When Western people train the mind, the focus is generally on the left hemisphere of the cortex, which is the portion of the brain that is concerned with words and numbers. We enhance the logical, bounded, linear functions of the mind. In the East, exercises of this sort are for the purpose of getting in tune with the unconscious—to get rid of boundaries, not to create them.
    Edward T. Hall (b. 1914)

    If photography is allowed to stand in for art in some of its functions it will soon supplant or corrupt it completely thanks to the natural support it will find in the stupidity of the multitude. It must return to its real task, which is to be the servant of the sciences and the arts, but the very humble servant, like printing and shorthand which have neither created nor supplanted literature.
    Charles Baudelaire (1821–1867)