--- title: Функція slug: Glossary/Function tags: - IIFE - JavaScript - Словник - Функція translation_of: Glossary/Function original_slug: Glossary/Функція ---
Функція - це фрагмент коду, що може бути викликаний іншим кодом чи сам собою, або {{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