return в JavaScript
- Что делает return
- Возврат значения
- Использование результата
- return останавливает функцию
- Несколько return в функции
- Пустой return
- Функция без return
- Перенос строки после return
- Итого
return используется внутри функции, чтобы вернуть из нее значение.
function sum(a, b) {
return a + b;
}
console.log(sum(4, 6));
Результат:
10
Функция посчитала сумму и вернула результат туда, где ее вызвали.
Что делает return
У return две основные задачи:
1. Вернуть значение из функции.
2. Завершить выполнение функции.
Обе задачи выполняются сразу. Как только JavaScript доходит до return, функция заканчивает работу.
Возврат значения
Без return функция может что-то сделать, например вывести текст в консоль. Но ее результат нельзя удобно использовать дальше.
function showSum(a, b) {
console.log(a + b);
}
showSum(2, 3);
Такая функция выводит сумму, но не возвращает ее.
Если нужен именно результат, используют return.
function getSum(a, b) {
return a + b;
}
let result = getSum(2, 3);
console.log(result);
Результат:
5
Теперь результат можно записать в переменную, передать в другую функцию или использовать в вычислениях.
Использование результата
Значение, которое возвращает функция, можно использовать как обычное значение.
function getDiscountPrice(price) {
return price * 0.9;
}
let finalPrice = getDiscountPrice(1000);
console.log(finalPrice);
Результат:
900
Можно сразу передать результат в console.log().
function getFullName(firstName, lastName) {
return firstName + ' ' + lastName;
}
console.log(getFullName('Анна', 'Смирнова'));
Результат:
Анна Смирнова
return останавливает функцию
Код после return внутри этой же функции не выполняется.
function checkAge(age) {
return age >= 18;
console.log('Эта строка не выполнится');
}
console.log(checkAge(20));
Результат:
true
После return age >= 18 функция уже завершила работу.
Несколько return в функции
В одной функции может быть несколько return. Обычно это нужно, когда результат зависит от условия.
function getAccessMessage(age) {
if (age >= 18) {
return 'Доступ разрешен';
}
return 'Доступ запрещен';
}
console.log(getAccessMessage(21));
console.log(getAccessMessage(15));
Результат:
Доступ разрешен
Доступ запрещен
Если первое условие сработало, функция вернет строку ‘Доступ разрешен’ и завершится. До второго return выполнение уже не дойдет.
Пустой return
return можно написать без значения. Тогда функция просто завершится.
function showUserName(name) {
if (!name) {
return;
}
console.log('Пользователь: ' + name);
}
showUserName('');
showUserName('Игорь');
Результат:
Пользователь: Игорь
При пустой строке функция остановилась раньше и ничего не вывела.
Функция без return
Если в функции нет return, она возвращает undefined.
function sayHello() {
console.log('Привет!');
}
let result = sayHello();
console.log(result);
Результат:
Привет!
undefined
Функция вывела текст в консоль, но значения не вернула.
Пустой return тоже возвращает undefined.
Перенос строки после return
После return не стоит переносить возвращаемое значение на новую строку без скобок.
function getUser() {
return
{
name: 'Анна'
};
}
console.log(getUser());
Результат:
undefined
JavaScript автоматически завершит строку после return. В итоге функция вернет undefined, а не объект.
Правильно так:
function getUser() {
return {
name: 'Анна'
};
}
console.log(getUser());
Результат:
{ name: 'Анна' }
Если выражение длинное, его можно перенести, но значение лучше сразу открыть на той же строке после return.
Итого
1. return возвращает значение из функции.
2. После return функция завершает выполнение.
3. Результат функции можно записать в переменную или использовать сразу.
4. Если функция ничего не возвращает, результатом будет undefined.
5. Значение после return не стоит переносить на новую строку без скобок.