--- title: function slug: Web/JavaScript/Reference/Statements/function tags: - JavaScript - Функция translation_of: Web/JavaScript/Reference/Statements/function ---
Объявление функции определяет функцию с указанными аргументами.
Также вы можете определять функции через конструктор {{jsxref("Function")}} или {{jsxref("Operators/function", "функциональное выражение")}}.
function name([param,[, param,[..., param]]]) {
[statements]
}
nameparamNstatementsФункция, созданная через объявление функции, является объектом Function и обладает всеми свойствами, методами и поведением объектов такого типа. Смотрите {{jsxref("Function")}} для подробной информации о функциях.
Также функцию можно создать с помощью выражения (см. {{jsxref("Operators/function", "функциональное выражение")}}).
По умолчанию функции возвращают undefined. Чтобы вернуть другое значение, функция должна содержать инструкцию {{jsxref("Statements/return", "return")}}, которая указывает, какое значение возвращать.
Функции могут объявлены условно, иначе говоря, объявление функции может содержаться внутри условного оператора. Большинство браузеров, отличных от Mozilla, трактуют подобные условные объявления безотносительно условия, и создадут функцию, вне зависимости от истинностного значения условия; смотрите статью об этом. Поэтому такое использование не рекомендуется, для условного создания функций используйте функциональные выражения.
Объявление функции в JavaScript поднимает определение функции. Вы можете использовать функцию до того, как вы её объявили:
hoisted(); // выводит "foo"
function hoisted() {
console.log("foo");
}
Заметьте, что {{jsxref("Operators/function", "функциональные выражения")}} не поднимаются:
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;
}
{{Compat}}