Функции Javascript

Функция JavaScript это блок кода, предназначенный для выполнения определенной задачи. По сути функции JavaScript это то же самое, что и процедуры или подпрограммы в других языках программирования.

Функция JavaScript выполняется только тогда, когда "что-то" обращается к ней (вызывает ее).


function myFunction(p1, p2) {
    return p1 * p2;              // Эта функция возвращает производное p1 и p2
}

Синтаксис функции JavaScript

Функция JavaScript декларируется при помощи ключевого слова function, за которым следует имя и круглые скобки ().

Имя функции может состоять из букв, цифр, символа подчеркивания и символа доллара (те же правила, что и с переменными).

Внутри круглых скобок могут определяться имена параметров, разделенных запятыми: (параметр1, параметр2, ...).

Исполняемый код функции помещается внутри фигурных скобок {}:


function имя(параметр1, параметр2, параметр3) {
    исполняемый код
} 

Параметры функции перечисляются внутри круглых скобок () в заголовке функции.

Аргументы функции это значения, получаемые функцией при ее вызове.

Внутри функции аргументы (параметры) ведут себя как локальные переменные.

Вызов функции

Код внутри функции выполняется только тогда, когда "что-то" обращается к ней (вызывает ее):

  • Когда возникает некое событие (например, пользователь нажимает на кнопку)
  • Когда функция вызывается из JavaScript кода
  • Автоматически (самовызов)

Подробнее обо всем этом будет рассказано дальше в этом учебнике.

Возвращение результата из функции

Когда интерпретатор JavaScript достигает выражения return, функция прекращает выполняться.

Если функция была вызвана из кода, интерпретатор вернет выполнение коду, расположенному после вызвавшего функцию выражения.

Часто функции возвращают некое значение, которое они вычисляли. Возвращенное значение "возвращается" обратно тому, кто ее вызвал.

Вычислим произведение двух чисел и вернем результат:


// Вызывается функция, возвращаемое значение
// сохраняется в переменной x
var x = myFunction(4, 3);

function myFunction(a, b) {
    return a * b;            // Функция возвращает произведение от a и b
}

В результате в переменной x будет получено значение 12.

Зачем нужны функции?

Функции позволяют повторно использовать код: однажды определите некий блок кода и затем используйте его сколько угодно раз из любого места скрипта.

Вы можете использовать один и тот же код много раз с разными аргументами, чтобы получить разные результаты.

В следующем примере используется функция, конвертирующая градусы Фаренгейта в градусы Цельсия:


function toCelsius(fahrenheit) {
    return (5/9) * (fahrenheit-32);
}

document.getElementById("demo").innerHTML = toCelsius(77); 

Оператор () вызывает функцию

Если брать пример кода, приведенный ранее, то выражение toCelsius обращается к объекту функции, а выражение toCelsius() к результату функции.

Вызов функции без скобок () вернет определение функции, а не результат ее работы:


function toCelsius(fahrenheit) {
    return (5/9) * (fahrenheit-32);
}

document.getElementById("demo").innerHTML = toCelsius; 

Функции как значения переменных

Функции могут использоваться так же как переменные во всех типах формул, в операторах присваивания и в любых вычислениях.

Вместо использования переменной для хранения результата функции:


var x = toCelsius(77);
var text = "Температура - " + x + " градусов Цельсия"; 

Вы можете использовать саму функцию, как значение переменной:


var text = "Температура - " + toCelsius(77) + " градусов Цельсия"; 

Подробнее о функциях будет рассказано в следующих главах этого учебника.