Функция определяется с помощью инструкции function. Объявление начинается ключевым словом function, за которым (не менее чем через один пробел) следуют
Имя функции.
Необязательный список аргументов, заключенный в круглые скобки и перечисляемый через запятую. Если у функции аргументов нет, круглые скобки все равно обязательны.
Набор инструкций, составляющий тело функции, заключенный в фигурные скобки. Фигурные скобки обязательны, даже если тело функции представлено одной инструкцией. Инструкции выполняются при вызове функции.
Итак, синтаксис объявления функций следующий:
function имя_функции( [арг1,[ арг2, [арг3, ...]]] )
{
инструкции_тела_функции
};
[Строго говоря, определение функции с помощью инструкции function – не единственный способ, хотя в подавляющем большинстве случаев применяется именно он.]
Функции JavaScript могут быть вложенными, то есть одна функция может быть определена в теле другой.
В теле функции может присутствовать инструкция return в формате return выражение. Выполнение инструкции return прекращает выполнение функции и возвращает указанное выражение.
Приведем максимально простые (даже глуповатые) примеры функций, первая из которых не возвращает выражения, а вторая – возвращает. Эти функции, как видно, вызываются в разных контекстах.
function showMessage(msg)
//выводит окно предупреждения с заданным сообщением
{
alert(msg);
};
function square(a)
//возвращает квадрат заданного числа
{
return(a*a);
};
//эти функции могут быть вызваны так:
showMessage('Hello world!');
//будет выведено маленькое окошко с сообщением
x = 5;
y = square(x);
//переменная y получит значение 25
Функции могут быть заданы рекурсивно, то есть в теле функции она может вызывать саму себя. Следующая функция представляет собой традиционный пример вычисления факториала.
function factorial(n)
//вычисляет и возвращает факториал своего аргумента
{
if ( n =< 1 )
return 1;
return x * factorial(x);
};