Функции: объявление, вызов, параметры, возврат значения

🎯 Зачем нужны функции?

Функции — это суперспособность 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.

Скрыть рекламу навсегда

🎥 YouTube: программирование простым языком

Канал, где я спокойно и по шагам объясняю сложные темы — без заумных терминов и лишней теории.

Подходит, если раньше «не заходило», но хочется наконец понять.

▶️ Смотреть курсы на YouTube