---
sidebar_position: 1
---

# Общая информация

#### Function Declaration: функция в основном потоке кода
```js
function sum(a, b) {
  let result = a + b;

  return result;
}
```

#### Function Expression: функция как часть выражения
```js
let sum = function(a, b) {
  let result = a + b;

  return result;
};
```

#### Стрелочные функции:
```js
// выражение в правой части
let sum = (a, b) => a + b;

// многострочный код в фигурных скобках { ... }, здесь нужен return:
let sum = (a, b) => {
  // ...
  return a + b;
}

// без аргументов
let sayHi = () => alert("Привет");

// с одним аргументом
let double = n => n * 2;
```

- У функций могут быть локальные переменные: т.е. объявленные в теле функции. Такие переменные видимы только внутри функции.
- У параметров могут быть значения по умолчанию: function sum(a = 1, b = 2) \{...\}.
- Функции всегда что-нибудь возвращают. Если нет оператора return, результатом будет undefined.

🚀 **Источник: [https://learn.javascript.ru/function-basics](https://learn.javascript.ru/function-basics)**