Функция в JavaScript специальный тип объектов, позволяющий формализовать средствами языка определённую логику поведения и обработки данных.
Function Declaration
Объявление функции состоит из ключевого слова function.
Такую функцию можно вызвать до объявления — благодаря эффекту всплытия (Hoisting).
function sayHallo(name) {
return `Hello ${name}`;
}
Function Expression
Функция будет присвоена переменной и описана без имени или с именем. Такую функцию нельзя вызвать до объявления.
// Function Expression
const say = function (name) {
return `Hello ${name}`;
}
// Named Function Expression
const count = function step(number) {
if (number > 0) {
step(number - 1);
}
}
Arrow function
Поведение стрелочных функций с ключевым словом this отличается от поведения обычных функций с this. Каждая функция в JavaScript определяет свой собственный контекст this, но внутри стрелочных функций значение this то же самое, что и снаружи (стрелочные функции не имеют своего this).
const sayHello = (name) => `Hello ${name}`;
IIFE
«immediately-invoked function expressions» (аббревиатура IIFE), что означает функцию, запускаемую сразу после объявления.
(function() {
let message = "Hello";
console.log(message);
})();