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