Объявить функцию

Синтаксис

function name([param_1] [, param_2] [..., param_n]) {
   statements
}

Аргументы

name
Имя функции
param_1, param_2, …, param_n
Названия параметров
statements
Тело функции

Описание, примеры

Существует два вида использования этой конструкции:

объявление функции
function func(a) { ... }
присвоение анонимной функции
var func = function(a) { ...}

Их отличие — в области видимости. Присвоенная анонимная функция видна с момента присвоения, а объявленная явно — везде:

Пример: видимость функций

01 // функции определены ниже
02
03 alert(decl) // функция видна, все ок
04
05
06 alert(anon) // функция еще не определена - ошибка
07
08 // сами функции
09 function decl(a) { }
10 var anon = function(a) { }

Функция, объявленная внутри другой функции, видит переменные внешней функции. Они доступны ей даже тогда, когда родительская функция завершила исполнение. Это называется замыканием.

Значение возвращается оператором return. Функции без return или с return без значения возвращают undefined.

В теле функции доступна специальная переменная arguments, которая содержит параметры и ссылку на объект, представляющий собой текущую функцию (в javascript функции — объекты класса Function):

Пример: arguments

01 // Вызов
02 func(5)
03
04 // Выведет
05 function func(a,b) {
06   alert(arguments.length)  // 1
07   alert(arguments[0])  // 5
08   alert(arguments[1])  // undefined
09   alert(arguments.callee) // ссылка на функцию func
10 }