Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Функция

Определение функции объявляет функцию с какими-либо аргументами.

Также вы можете определять функции через конструктор Function или выражение функции.

Синтаксис

function name([param,[, param,[..., param]]]) {
   [statements]
}
name
Имя функции.
paramN
Имя аргумента, переданного в функцию. Функция может принять до 255 аргументов.
statements
Тело функции.

Описание

Функция создаётся определением объекта Function и имеет все свойства, методы и поведение объектов Function. Смотрите Function для подробной информации о функциях.

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

По умолчанию функции возвращают undefined. Чтобы вернуть другое значение в функции должно быть выражение return, определяющее, какое значение возвращать.

Функции, создаваемые по условию

Функции могут объявлены по условию, функциональное выражение может быть внутри условия. Многие браузеры, кроме основанных на Mozilla могут создавать функции внутри условий, вне зависимости от того, истинно условие или ложно; смотрите статью об этом. Поэтому фукции внутри условий использовать не рекомендуется.

Поднимание объявленной функции

Объявление функции в JS поднимает объявление функции. Вы можете использовать функцию до того, как вы её определили:

hoisted(); // выводит "foo"

function hoisted() {
  console.log("foo");
}

Заметьте, что функциональные выражения не поднимаются:

notHoisted(); // TypeError: notHoisted не является функцией

var notHoisted = function() {
   console.log("bar");
};

Примеры

Использование функции

Следующий код объявляет функцию, возврающую текущее количество продаж, сложенное из количества продаж продуктов a, b и c.

function calc_sales(units_a, units_b, units_c) {
   return units_a*79 + units_b * 129 + units_c * 699;
}

Спецификации

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Function definitions' в этой спецификации.
Стандарт  
ECMAScript 5.1 (ECMA-262)
Определение 'Function definition' в этой спецификации.
Стандарт  
ECMAScript 3rd Edition (ECMA-262)
Определение 'Function definition' в этой спецификации.
Стандарт  
ECMAScript 1st Edition (ECMA-262)
Определение 'Function definition' в этой спецификации.
Стандарт Изначальное определение. Выполняется в JavaScript 1.0.

Поддержка браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

Метки: 
 Внесли вклад в эту страницу: forestbird, bychek.ru
 Обновлялась последний раз: forestbird,