function

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

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

Синтаксис

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

Использование function

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

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

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

Спецификация Статус Комментарий
ECMAScript (ECMA-262)
Определение 'Function definitions' в этой спецификации.
Живой стандарт
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.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
functionChrome Полная поддержка 1Edge Полная поддержка 12Firefox Полная поддержка 1IE Полная поддержка 3Opera Полная поддержка 3Safari Полная поддержка 1WebView Android Полная поддержка 1Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 10.1Safari iOS Полная поддержка 1Samsung Internet Android Полная поддержка 1.0nodejs Полная поддержка 0.1.100
Trailing comma in parametersChrome Полная поддержка 58Edge Полная поддержка 14Firefox Полная поддержка 52IE Нет поддержки НетOpera Полная поддержка 45Safari Полная поддержка 10WebView Android Полная поддержка 58Chrome Android Полная поддержка 58Firefox Android Полная поддержка 52Opera Android Полная поддержка 43Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 7.0nodejs Полная поддержка 8.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

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