From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/statements/function/index.html | 125 +++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 files/ru/web/javascript/reference/statements/function/index.html (limited to 'files/ru/web/javascript/reference/statements/function') diff --git a/files/ru/web/javascript/reference/statements/function/index.html b/files/ru/web/javascript/reference/statements/function/index.html new file mode 100644 index 0000000000..37ccac9a29 --- /dev/null +++ b/files/ru/web/javascript/reference/statements/function/index.html @@ -0,0 +1,125 @@ +--- +title: function +slug: Web/JavaScript/Reference/Statements/function +tags: + - JavaScript + - Функция +translation_of: Web/JavaScript/Reference/Statements/function +--- +
{{jsSidebar("Statements")}}
+ +

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

+ +

Также вы можете определять функции через конструктор {{jsxref("Function")}} или {{jsxref("Operators/function", "функциональное выражение")}}.

+ +

Синтаксис

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

Описание

+ +

Функция, созданная через объявление функции, является объектом 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;
+}
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-13', 'Function definition')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-13', 'Function definition')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-13', 'Function definition')}}{{Spec2('ES1')}}Изначальное определение. Реализовано в JavaScript 1.0.
+ +

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

+ +

{{Compat("javascript.statements.function")}}

+ +

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

+ + -- cgit v1.2.3-54-g00ecf