Определение функции объявляет функцию с какими-либо аргументами.
Также вы можете определять функции через конструктор 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 |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |