05. Функции

Что такое функция

Функция — это блок кода, который можно вызывать многократно. Она помогает избежать дублирования и делает код понятнее.
Функция — как мини-программа внутри вашей программы. Её можно запустить в нужный момент, передать данные и получить результат.

Создание функции

Функция объявляется с помощью ключевого слова function.

function sayHello() {
  console.log('Привет, мир!');
}

Чтобы запустить (вызвать) функцию, нужно написать её имя с круглыми скобками:


sayHello(); // Привет, мир!

Пример


function greet() {
  console.log('Добро пожаловать в JavaScript!');
}

greet(); greet(); // Можно вызвать несколько раз

Параметры и аргументы

Функция может принимать значения (параметры), с которыми она работает.

function greetUser(name) {
  console.log('Привет, ' + name + '!');
}

greetUser('Анна'); greetUser('Иван');

Несколько параметров


function showInfo(name, age) {
  console.log(`${name}, ${age} лет`);
}

showInfo('Алекс', 25);

Возврат значения

Иногда функция должна не просто что-то сделать, а вернуть результат. Для этого используется return.

function add(a, b) {
  return a + b;
}

let result = add(5, 3); console.log(result); // 8

После return выполнение функции прекращается.

Пример


function isAdult(age) {
  if (age >= 18) {
    return true;
  } else {
    return false;
  }
}

console.log(isAdult(20)); // true console.log(isAdult(15)); // false

Область видимости

Переменные, объявленные внутри функции, недоступны снаружи — это называется локальная область видимости.

function test() {
  let message = 'Привет!';
  console.log(message); // работает
}

// console.log(message); // Ошибка: message не определена

Глобальные переменные

Если переменная объявлена вне функции — она глобальная, и доступна везде.

let site = 'Example.com';

function showSite() { console.log('Добро пожаловать на ' + site); }

showSite();

Стрелочные функции

Современный способ записи функций — через стрелочную запись (arrow functions).

// Обычная функция
function square(x) {
  return x * x;
}

// Стрелочная функция const squareArrow = (x) => x * x;

console.log(squareArrow(5)); // 25

Если тело функции состоит из одной строки, можно опустить фигурные скобки и return.

Пример с несколькими строками


const greet = (name) => {
  console.log('Привет, ' + name);
  console.log('Рад тебя видеть!');
};

greet('Анна');

Передача функций как аргументов

В JavaScript функции — это объекты первого класса, их можно передавать в другие функции!

function callTwice(fn) {
  fn();
  fn();
}

function sayHi() { console.log('Привет!'); }

callTwice(sayHi);

Мини-практика

  • Создайте функцию multiply(a, b), которая возвращает произведение двух чисел.
  • Создайте функцию greetUser(name, age), которая выводит строку: «Привет, Анна! Тебе 25 лет.»
  • Создайте стрелочную функцию isEven(num), которая возвращает true, если число чётное.

Пример решения


function multiply(a, b) {
  return a * b;
}

const greetUser = (name, age) => { console.log(`Привет, ${name}! Тебе ${age} лет.`); };

const isEven = (num) => num % 2 === 0;

console.log(multiply(3, 4)); // 12 greetUser('Анна', 25); console.log(isEven(10)); // true

Советы новичкам

  • Если функция возвращает значение — всегда проверяйте, что возвращается именно то, что нужно.
  • Старайтесь давать функциям понятные имена: `getUserInfo()`, `calculateSum()` — это делает код читаемым.
  • Не бойтесь вызывать функции внутри других функций — это обычная практика!
  • Если функция становится длинной — разбейте её на несколько мелких.

Итоги урока

Теперь вы знаете:
  • Как создавать и вызывать функции.
  • Как передавать параметры и возвращать результаты.
  • Разницу между обычными и стрелочными функциями.
  • Что такое область видимости переменных.