Возврат значения
В прошлом уроке вы передавали значения внутрь функции. Реальным программам часто нужен ещё и результат наружу — сумма, метка, да/нет — чтобы вызывающий код продолжил работу. Ключевое слово, которое отдаёт этот результат, — return.
Что делает return
В теле пишете return expression;. JavaScript вычисляет выражение, передаёт значение вызывающему коду и завершает этот вызов. Вызывающий может сохранить: let total = add(3, 4); — здесь total становится 7.
return — это не то же самое, что вывод в консоль
📊 return против console.log
| Идея | Что делает | Кто видит |
|---|---|---|
return value |
отправляет value вызывающему |
ваша следующая строка кода |
console.log(value) |
печатает value в консоль |
тот, кто смотрит консоль |
| оба | можно и печатать, и возвращать | лог — для глаз; return — для программы |
без return |
вызов заканчивается с undefined |
сохранение вызова даёт undefined |
после return |
дальнейшие строки этого вызова пропускаются | ранний выход намеренный |
Лог помогает подсмотреть. Возврат позволяет остальной программе использовать ответ. Новички часто только печатают внутри и удивляются, почему let x = f() равно undefined — потому что ничего не вернули.
function add(a, b) {
return a + b;
}
let total = add(3, 4);
console.log(total);
Сохраните результат
add сама не печатает. Она возвращает 7. Вызывающий кладёт это в total, затем логирует. Меняйте аргументы, оставляйте тело — возвращённая сумма следует за входами.
function greet(name) {
return "Hello, " + name;
}
let line = greet("Sara");
console.log(line);
Соберите значение на потом
greet собирает строку и отдаёт её. В line лежит Hello, Sara. Можно передать line на страницу, в другую функцию или в тест — return открывает повторное использование вне тела.
function demo() {
console.log("first");
return 1;
console.log("second");
}
demo();
После return ничего не выполняется
Этот вызов печатает first, затем возвращает 1. Строка с second никогда не выполняется. Это не баг — return сразу завершает вызов.
function label(score) {
if (score < 0) {
return "invalid";
}
return "ok";
}
console.log(label(-1));
console.log(label(10));
Выходите рано, когда ответ уже готов
Если score отрицательный, функция возвращает "invalid" и пропускает остальное. Иначе — "ok". Такой ранний return делает обычный путь коротким и читаемым.
function shout(msg) {
console.log(msg);
}
let result = shout("hi");
console.log(result);
Забыли return?
shout только логирует. Вызов всё равно заканчивается — с undefined. Сохранение кладёт undefined в result. Нужно значение снаружи — напишите явный return.
Положите возвращённое значение на страницу
Соберите сообщение через return, затем запишите эту строку в абзац. Функция сосредоточена на тексте; код страницы решает, где он появится.
Покажите return на странице
Объявите функцию, которая возвращает строку приветствия, вызовите её и поместите результат в абзац.
<!DOCTYPE html>
<html>
<head>
<title>return — page</title>
</head>
<body>
<p id="msg">…</p>
<script>
function welcome(guest) {
return "Hello, " + guest;
}
let box = document.getElementById("msg");
box.textContent = welcome("Omar");
</script>
</body>
</html>
Страница показывает Hello, Omar. welcome вернула строку; следующая строка записала её в абзац. Меняйте только аргумент, обновите страницу и прочитайте новую строку. Дальше — стрелочные функции: более короткая запись некоторых таких функций.
Попробуйте сами
- Напишите
function sum(x, y), которая возвращаетx + y, сохраните вызов в переменную и залогируйте её. - Напишите
function hi(name), которая возвращает"hi "плюсname, затем залогируйте возвращённую строку. - Поставьте
console.logпослеreturnвнутри функции; убедитесь, что строка не печатается. - Напишите охрану: если
n === 0вернуть"zero", иначе"nonzero". - Вызовите функцию, которая только делает
console.log, и сохраните вызов; подтвердитеundefined. - В HTML-демо меняйте только строку аргумента, обновите и прочитайте абзац.
Частые ошибки
- Только
console.logвнутри и ожидание, чтоlet x = f()даст полезное значение - Забыть сохранить или использовать возвращённое значение при вызове
- Писать код после
returnи удивляться, почему он не выполняется - Писать пустой
return;вместоreturn value; - Искать здесь приёмы с параметрами — эта страница про выходы; входы были в прошлом уроке
Кратко
returnотправляет значение вызывающему коду- Сохраняйте или используйте это значение вне функции
- После
returnостаток этого вызова пропускается - Ранний return — чистый выход для особых случаев
- Без
return(или пустойreturn) → вызов даётundefined - Обновления страницы могут использовать возвращённую строку
- Дальше: стрелочные функции — компактный синтаксис функций
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху