From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../index.html" | 89 ++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 "files/uk/glossary/\321\204\321\203\320\275\320\272\321\206\321\226\321\217/index.html" (limited to 'files/uk/glossary/функція/index.html') diff --git "a/files/uk/glossary/\321\204\321\203\320\275\320\272\321\206\321\226\321\217/index.html" "b/files/uk/glossary/\321\204\321\203\320\275\320\272\321\206\321\226\321\217/index.html" new file mode 100644 index 0000000000..b686ccc40c --- /dev/null +++ "b/files/uk/glossary/\321\204\321\203\320\275\320\272\321\206\321\226\321\217/index.html" @@ -0,0 +1,89 @@ +--- +title: Функція +slug: Glossary/Функція +tags: + - IIFE + - JavaScript + - Словник + - Функція +translation_of: Glossary/Function +--- +

Функція - це фрагмент коду, що може бути викликаний іншим кодом чи сам собою, або {{Glossary("змінна")}} що відноситься до функцій. Коли функцію викликано, {{Glossary("арґументи")}} функція отримує як ввід, та може повертати вивід. Функції у {{glossary("JavaScript")}} це також {{glossary("Object","об'єкти")}}.

+ +

Ім'я функції це {{Glossary("identifier","ідентифікатор")}} оголошений як частина оголошення функції чи виразу функції. {{Glossary("scope", "Область видимості")}} залежить від того, є функція оголошеною чи описаною.

+ +

Різні види функцій

+ +

Анонімна функція, це функція без імені функції:

+ +
function () {};
+// або використовуючи ECMAScript 2015 запис зі стрілкою
+() => {};
+
+ +

Названа функція, це функція що має ім'я:

+ +
function foo() {};
+// або використовуючи ECMAScript 2015 запис зі стрілкою
+const foo = () => {};
+
+ +

Внутрішня функція,  це функція всередині іншої функції (square в цьому випадку). Зовнішня функція, це функція, що містить всередині інші функції (addSquares в цьому випадку):

+ +
function addSquares(a,b) {
+   function square(x) {
+      return x * x;
+   }
+   return square(a) + square(b);
+};
+// використовуючи ECMAScript 2015 запис зі стрілкою
+const addSquares = (a,b) => {
+   const square = x => x*x;
+   return square(a) + square(b);
+};
+
+ +

Рекурсивна функція, це функція, що викликає сама себе. Дивіться {{Glossary("Рекурсія", "рекурсія")}}.

+ +
function loop(x) {
+   if (x >= 10)
+      return;
+   loop(x + 1);
+};
+// використовуючи ECMAScript 2015 запис зі стрілкою
+const loop = x => {
+   if (x >= 10)
+      return;
+   loop(x + 1);
+};
+
+ +

Негайно виконуваний функціональний вираз (IIFE, Immediately Invoked Function Expression) — це вираз, що одночасно оголошує {{Glossary("Функція", "функцію")}} в {{Glossary("JavaScript")}} та здійснює її виклик. Позаяк подальший виклик безіменної функції, посилання на яку відсутнє, неможливий, головним призначенням такого виразу є створення окремої області видимості, щоб уникнути засмічення зовнішньої (зазвичай, глобальної). Створити НВФВ можна, додавши ліву та праву дужки в кінці оголошення функції.

+ +
// Error (https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)
+/*
+​function foo() {
+    console.log('Hello Foo');
+}();
+*/
+
+(function foo() {
+    console.log("Hello Foo");
+}());
+
+(function food() {
+    console.log("Hello Food");
+})();
+
+
+ +

Якщо хочете дізнатись бульше про НВФВ, перегляньте сторінку на Wikipedia : Immediately Invoked Function Expression

+ +

Дізнатись більше

+ +

Технічна довідка

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