Полезное
Способы записи функций
Кроме указанного в видео определения функции:
// const <name> = (<argument>) => {
// return <expressions>;
// };
const identity = (value) => {
return value;
};
Существует несколько других. Например, если у вас функция-однострочник, то можно использовать сокращенный синтаксис:
// const <name> = (<argument>) => <expressions>;
const identity = value => value;
В коде выше мы опустили фигурные скобки и слово return
, а также скобки вокруг аргумента (это можно делать только если у функции один аргумент).
Так же можно определять функции, используя ключевое слово function
:
// Устаревший синтаксис, предпочтительным является () => {}. Кроме синтаксической разницы есть и семантическая.
// Она связана с пока не изученной темой this.
const identity = function(value) {
return value;
};
или
// Такую функцию можно использовать до ее определения (в этом же файле)
function identity(value) {
return value;
}
В наших курсах мы будем придерживаться () => {}
такой формы записи по многим причинам. Во-первых, она лаконичнее, во-вторых,
обладает одним важным свойством, которое будет изучено позже, ну а в-третьих, такой способ записи визуально стирает грань между
функциями и данными, что очень пригодится нам в будущем.
Формальные и Фактические параметры функции
Немного терминологии. Формальными параметрами функции называются имена переменных
в определении функции, например у функции const f = (a, b) => a - b;
формальные параметры
это a
и b
. А фактические параметры — это то, что было передано в функцию в момент
вызова, например если предыдущую функцию вызвать так f(5, z)
, где const z = 8
, то
фактическими параметрами являются 5
и z
. Результатом этого вызова будет число -3
,
а внутри функции, на момент конкретного вызова, параметр a
становится равным 5
и
b
становится равным 8
.
const f = x => x * x;
const y = 5;
console.log(f(y)); // 25
const z = 3;
console.log(f(z)); // 9
Как видите, нет никакой связи между именами формальных и фактических параметров, более
того, у фактических параметров вообще может не быть имен, как в примере выше, где мы
сразу передали число 5
в функцию. Что имеет значение, так это позиция. Во время
вызова функции параметры должны передаваться в правильном порядке, и только тогда функция
отработает, как предполагается.
const f = (a, b) => a - b;
const x = 5;
const y = 8;
console.log(f(x, y)); // -3
console.log(f(y, x)); // 3
Return
Вызов оператора return
приводит к изменению течения программы. Последующие инструкции никогда не будут выполнены:
const identity = (value) => {
return value;
const a = 3 + 5; // этот код никогда не будет достигнут
};
console.log(identity(10)); // => 10
https://repl.it/@hexlet/programming-basics-functions-return

Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Урок «Как эффективно учиться на Хекслете»
- Вебинар «Как самостоятельно учиться»