Перейти до:

Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

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

Ім'я функції це ідентифікатор оголошений як частина оголошення функції чи виразу функції. Зона видимості залежить від того, є функція оголошенною чи описаною.

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

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

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);
};

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

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) — це вираз, що одночасно оголошує функцію в 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");
})();

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

Learn more

Technical reference

Мітки документа й учасники

Мітки: 
 Зробили внесок у цю сторінку: bdvorianov
 Востаннє оновлена: bdvorianov,