--- title: Функция slug: Glossary/Function tags: - JavaScript - Глоссарий - КодингСкриптинг - Функция translation_of: Glossary/Function original_slug: Глоссарий/Функция ---

Функция это отрывок кода который может быть вызван из другого кода или вызван собой, или это {{Glossary("variable")}} которая ссылается на функцию. Когда функция вызвана, {{Glossary("Argument", "аргументы")}} переданы в функцию как вход, и функция может необязательно вернуть вывод. Функция в {{glossary("JavaScript")}} это {{glossary("object")}}.

Имя функции это {{Glossary("identifier")}} объявлённый как часть объявления функции или выражения функции. Имя функции {{Glossary("scope")}} зависит от того является ли имя функции объявлением или выражением.

Различные типы функций

Анонимная функция это функция без имени:

function () {}

Именованная функция это функция с именем:

function foo() {}

Внутренняя функция это функция внутри другой функции  (square в данном случае). Внешняя функция это функция содержащая функцию (addSquares в данном случае):

function addSquares(a,b) {
   function square(x) {
      return x * x;
   }
   return square(a) + square(b);
}

Рекурсивная функция это функция которая вызывает саму себя. См {{Glossary("Recursion", "recursion")}}.

function loop(x) {
   if (x >= 10)
      return;
   loop(x + 1);
}

Immediately Invoked Function Expressions (IIFE) это функция которая вызывается прямо после того как функция загружена в компилятор браузера. Способ объявления IIFE это путём размещения левых и правых круглых скобок в конце объявления функции.  В этом типе выражении функций много преимуществ, но это выходит за рамки курса. Если вы хотите узнать больше об IFFE, проверьте следующую страницу на Википедии.

https://en.wikipedia.org/wiki/Immediately-invoked_function_expression

Examples:

​function foo(){
 console.log('Здравствуй Foo');
}();


(function foo() {
​ console.log('Здравствуй Foo');
}());


(function food(){
    console.log('Здравствуй Foo');
})();

 

 

Узнайте больше

Технический справочник