From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../reference/statements/function/index.html | 179 +++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 files/uk/web/javascript/reference/statements/function/index.html (limited to 'files/uk/web/javascript/reference/statements/function') diff --git a/files/uk/web/javascript/reference/statements/function/index.html b/files/uk/web/javascript/reference/statements/function/index.html new file mode 100644 index 0000000000..c038ec106d --- /dev/null +++ b/files/uk/web/javascript/reference/statements/function/index.html @@ -0,0 +1,179 @@ +--- +title: Оголошення функції +slug: Web/JavaScript/Reference/Statements/function +tags: + - JavaScript + - Функція +translation_of: Web/JavaScript/Reference/Statements/function +--- +
{{jsSidebar("Statements")}}
+ +

Оголошення функції (функціональний оператор) визначає функцію з вказаними параметрами.

+ +

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

+ +
{{EmbedInteractiveExample("pages/js/statement-function.html")}}
+ + + +

Синтаксис

+ +
function name([param[, param,[..., param]]]) {
+   [statements]
+}
+
+ +
+
name
+
Ім'я функції.
+
+ +
+
param
+
Ім'я аргументу, що передається у функцію. Максимальна кількість аргументів відрізняється у різних рушіях.
+
+ +
+
statements
+
Інструкції, які складають тіло функції.
+
+ +

Опис

+ +

Функція, утворена через оголошення функції, є об'єктом Function, і має усі властивості, методи та поведінку об'єктів Function. Більш детальну інформацію щодо функцій дивіться у статті {{jsxref("Function")}}.

+ +

Функція також може бути створена через за допомогою виразу (дивіться {{jsxref("Operators/function", "функціональний вираз")}}).

+ +

За замовчуванням функції повертають undefined. Щоб повернути будь-яке інше значення, функція повинна мати оператор {{jsxref("Statements/return", "return")}}, який вказує значення, що буде повернене.

+ +

Умовне створення функцій

+ +

Функції можуть оголошуватися за певної умови, тобто, оголошення функції може бути вкладене у if, однак, результат різниться між реалізаціями, тому цей шаблон не варто використовувати у виробничому коді. Для умовного створення функції використовуйте, натомість, функціональний вираз.

+ +
var hoisted = "foo" in this;
+console.log(`Ім'я 'foo'${hoisted ? "" : " не"} піднімається. typeof foo дорівнює ${typeof foo}`);
+if (false) {
+  function foo(){ return 1; }
+}
+
+// У Chrome:
+// Ім'я 'foo' піднімається. typeof foo дорівнює undefined
+//
+// У Firefox:
+// Ім'я 'foo' піднімається. typeof foo дорівнює undefined
+//
+// У Edge:
+// Ім'я 'foo' не піднімається. typeof foo дорівнює undefined
+//
+// У Safari:
+// Ім'я 'foo' піднімається. typeof foo дорівнює function
+
+ +

Результат буде такий самий для умови, яка дорівнює true

+ +
var hoisted = "foo" in this;
+console.log(`Ім'я 'foo' ${hoisted ? "" : " не"} піднімається. typeof foo дорівнює ${typeof foo}`);
+if (true) {
+  function foo(){ return 1; }
+}
+
+// У Chrome:
+// Ім'я 'foo' піднімається. typeof foo дорівнює undefined
+//
+// У Firefox:
+// Ім'я 'foo' піднімається. typeof foo дорівнює undefined
+//
+// У Edge:
+// Ім'я 'foo' не піднімається. typeof foo дорівнює undefined
+//
+// У Safari:
+// Ім'я 'foo' піднімається. typeof foo дорівнює function
+
+ +

Підняття оголошення функції

+ +

Оголошення функцій у JavaScript піднімаються наверх замикаючої функції або глобальної області видимості. Ви можете використовувати функцію до того, як оголосили її:

+ +
hoisted(); // виводить "foo"
+
+function hoisted() {
+  console.log('foo');
+}
+
+ +

Зауважте, що {{jsxref("Operators/function", "функціональні вирази")}} не піднімаються:

+ +
notHoisted(); // TypeError: notHoisted is not a function
+
+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