Функции: объявление, вызов, параметры, возврат значения
🎯 Зачем нужны функции?
Функции — это суперспособность JavaScript, которая позволяет упаковать код в переиспользуемые блоки. Представьте: вы пишете инструкцию один раз, а потом вызываете её в любом месте программы, когда нужно. Никакого копипаста, только чистая магия!
🔥 Главные плюсы функций:
- Избегаем повторений — один код, много использований.
- Упрощаем отладку — исправляем ошибку в одном месте, а не в 20.
- Делаем код читаемым — называем функции понятно (calculateTotal, showError).
📝 Объявление функции
Есть два популярных способа создать функцию:
1. Function Declaration (классика)
function greet(name) {
console.log(`Привет, ${name}! 👋`);
}
👉 Особенности:
- Можно вызывать до объявления (благодаря hoisting).
- Чётко видно, что это функция (ключевое слово function).
2. Arrow Function (ES6+)
const greet = (name) => {
console.log(`Привет, ${name}! 👋`);
};
👉 Особенности:
- Короче и современнее.
- Нет своего this (важно в контексте объектов и классов).
💡 Совет: Для простых действий можно опустить
{}иreturn:
javascript const double = num => num * 2; // Возвращает num * 2
📢 Вызов функции
Объявили функцию? Теперь её можно вызвать (использовать):
// Объявление
function sayWeather(weather) {
console.log(`Сегодня ${weather}.`);
}
// Вызов
sayWeather("солнечно"); // "Сегодня солнечно."
sayWeather("дождь"); // "Сегодня дождь."
👉 Как работает:
1. Передаём аргумент "солнечно" в параметр weather.
2. Функция подставляет его в console.log.
3. Получаем результат.
🎛 Параметры и аргументы
- Параметры — это переменные в объявлении функции (например,
nameвgreet(name)). - Аргументы — конкретные значения, которые передаём при вызове (
"Анна"вgreet("Анна")).
Пример с несколькими параметрами
function createUser(name, age, isAdmin = false) {
console.log(`
Имя: ${name}
Возраст: ${age}
Админ: ${isAdmin ? "Да" : "Нет"}
`);
}
createUser("Мария", 25); // isAdmin = false (значение по умолчанию)
createUser("Иван", 30, true);
⚠️ Важно:
Если аргумент не передан, параметр будетundefined.
Значения по умолчанию (какisAdmin = false) решают эту проблему.
🔙 Возврат значения
Функция может возвращать результат через return. Без него — она просто выполняет код, но не отдаёт данные.
Сравним:
// 1. Без return (undefined)
function sum(a, b) {
a + b;
}
console.log(sum(2, 3)); // undefined
// 2. С return
function sum(a, b) {
return a + b;
}
console.log(sum(2, 3)); // 5
Возвращаем объект или массив
function createPerson(name, age) {
return { name, age }; // Краткая запись { name: name, age: age }
}
const person = createPerson("Данила", 28);
console.log(person); // { name: "Данила", age: 28 }
🏆 Практика: напишем полезную функцию
Задача: Функция checkPassword, которая проверяет, совпадают ли пароли и достаточно ли длины (минимум 8 символов).
function checkPassword(password, confirmPassword) {
if (password.length < 8) {
return "Пароль слишком короткий!";
}
if (password !== confirmPassword) {
return "Пароли не совпадают!";
}
return "Пароль надёжный! 🎉";
}
console.log(checkPassword("qwerty", "qwerty")); // "Пароль слишком короткий!"
console.log(checkPassword("secure123", "secure")); // "Пароли не совпадают!"
console.log(checkPassword("secure123", "secure123")); // "Пароль надёжный! 🎉"
🌟 Итоги
- Функции — это блоки кода, которые можно переиспользовать.
- Объявляем через
functionилиconst func = () => {}. - Вызываем по имени:
func(). - Параметры — настройки функции, аргументы — конкретные значения.
returnвозвращает результат. Без него функция возвращаетundefined.
Теперь вы можете создавать свои функции и делать код чище и мощнее! 🚀
Если хотите глубже разобрать эту тему — у Данилы Бежина есть отличный разбор функций на YouTube.