3.1 Объявление функций
Функции являются одними из основных строительных блоков в JavaScript. Они позволяют вам организовать код, повторно использовать логику и создавать более сложные структуры. Рассмотрим три основных способа объявления и использования функций: объявление функций, выражения функций и функции-стрелки.
Объявление функции — это способ создания именованной функции, которую можно вызвать позднее. Такие функции «поднимаются» (hoisted) на вершину их области видимости, что позволяет их вызывать до объявления в коде.
Синтаксис:
function name (arguments) {
// function body
}
Пример использования:
// Объявление функции
function greet(name) {
return `Hello, ${name}!`;
}
// Вызов функции
console.log(greet('Alice')); // Выведет: Hello, Alice!
3.2 Выражения функций
Выражения функций создают анонимные функции (функции без имени) и могут быть присвоены переменной. Такие функции не «всплывают», поэтому их можно вызвать только после объявления.
Синтаксис:
const name = function (arguments) {
// function body
}
Пример использования:
// Выражение функции
const greet = function(name) {
return `Hello, ${name}!`;
};
// Вызов функции
console.log(greet('Bob')); // Выведет: Hello, Bob!
3.3 Функции-стрелки
Функции-стрелки (arrow functions) — это краткий способ объявления функций, который также сохраняет контекст this из родительской области видимости. У функций-стрелок нет собственного this, поэтому они особенно полезны в обработчиках событий и методах массивов.
Синтаксис:
const name = (arguments) => {
// function body
}
Если функция принимает один параметр, круглые скобки можно опустить. Если функция возвращает одно выражение, можно опустить фигурные скобки и ключевое слово return.
Пример 1: Полная запись
// Функция-стрелка
const greet = (name) => {
return `Hello, ${name}!`;
};
// Вызов функции
console.log(greet('Charlie')); // Выведет: Hello, Charlie!
Пример 2: Сокращенная запись
// Функция-стрелка с одним параметром и одним выражением
const greet = name => `Hello, ${name}!`;
// Вызов функции
console.log(greet('Dana')); // Выведет: Hello, Dana!
3.4 Сравнение способов объявления функций
Подъем (hoisting):
- Объявление функций: функции поднимаются, что позволяет их вызывать до объявления
- Выражения функций и Функции-стрелки: не поднимаются, их можно вызывать только после объявления
Контекст this:
- Объявление функций и Выражения функций: имеют собственный контекст
this - Функции-стрелки: не имеют собственного
this, контекст наследуется от родительской области видимости
Удобство записи:
- Функции-стрелки: более лаконичны и часто используются для коротких функций и коллбэков
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ