Работа с функциями
Функции — это один из важнейших элементов JavaScript, позволяющий структурировать код, повторно использовать его и значительно упрощать разработку.
2.1. Что такое функция?
Функция — это блок кода, который выполняет определённое действие или вычисление. Функции помогают:
- 🔄 Повторно использовать код, избегая дублирования.
- 📦 Инкапсулировать логику для удобства и читаемости.
- 🛠️ Разбивать задачи на более мелкие, легко управляемые части.
function greet() { console.log('Привет, мир!'); } // Вызов функции greet(); // Привет, мир!
2.2. Как создавать функции
В JavaScript есть несколько способов объявления функций. Давайте рассмотрим каждый из них.
Обычные функции (Function Declaration)
function greet(name) { return `Привет, ${name}!`; } console.log(greet('Анна')); // Привет, Анна!
Используйте такие функции, когда требуется доступ к ним до их определения.
Функциональные выражения (Function Expression)
Функция может быть присвоена переменной:
const greet = function(name) { return `Привет, ${name}!`; }; console.log(greet('Анна')); // Привет, Анна!
Стрелочные функции (Arrow Functions)
Стрелочные функции — это современный и сокращённый синтаксис для функций:
const greet = (name) => `Привет, ${name}!`; console.log(greet('Анна')); // Привет, Анна!
Используйте стрелочные функции там, где не нужен собственный контекст this
, чтобы избежать путаницы.
2.3. Аргументы функций
Аргументы — это входные данные, которые передаются в функцию при её вызове.
В скобках после имени функции перечисляются параметры, которые ожидаются:
function greet(name) { console.log(`Привет, ${name}!`); } greet('Анна'); // Привет, Анна!
Если аргумент не передан, можно задать значение по умолчанию:
function greet(name = 'Гость') { console.log(`Привет, ${name}!`); } greet(); // Привет, Гость!
Используйте значения по умолчанию, чтобы избежать ошибок с undefined аргументами.
2.4. Возвращаемые значения
Функция может вернуть результат своей работы с помощью оператора return
:
function add(a, b) { return a + b; } console.log(add(3, 5)); // 8
- Если в функции нет
return
, она возвращаетundefined
. - Функции могут возвращать объекты, массивы, другие функции:
function createUser(name, age) { return { name, age }; } console.log(createUser('Анна', 25)); // { name: 'Анна', age: 25 }
2.5. Замыкания
Замыкание — это функция, которая «запоминает» переменные из своего внешнего окружения:
function createCounter() { let count = 0; return function() { count++; return count; }; } const counter = createCounter(); console.log(counter()); // 1 console.log(counter()); // 2
2.6. Callback-функции
Callback-функция — это функция, передаваемая как аргумент в другую функцию, для выполнения после завершения какой-либо операции.
function processInput(callback) { const name = prompt('Введите ваше имя:'); callback(name); } processInput((name) => { alert(`Привет, ${name}!`); });
Callback'и полезны для асинхронных операций, например, обработки событий или работы с API.