Далее на странице...
Здесь речь пойдет об операторе return и таком понятии, как возвращение результата работы функции.
Если вернуться к первым двум заметкам темы функций в JavaScript, то можно увидеть, что во всех примерах результат работы функции сразу выводился на экран при помощи метода write() объекта document.
Однако функция может возвращать результат своей работы (например, числовое значение), а разработчик его, соответственно, получать и как-то использовать в том месте программы, где это необходимо.
За возвращение значения функцией в JavaScript отвечает оператор return.
Результат работы функции
Чтобы лучше понять, как работает оператор return в JavaScript, сначала будет рассмотрен пример, в котором результат работы функции выводится на экран.
<script type="text/javascript">
function square(number) /* Создание функции */
{
var result = number * number; /* Создание переменной, содержащей квадрат числа */
document.write(result); /* Вывод переменной на экран */
}
square(15); /* Вызов функции */
</script>
В приведенном примере создается функция, которая вычисляет квадрат числа и выводит это значение (результат своей работы) на экран.
Но в программировании, как правило, нет необходимости использовать функции подобным образом.
Оператор return - Возвращение значения функцией
Продолжая работу с предыдущим примером и, используя оператор return, следует составить функцию таким образом, чтобы она возвращала результат своей работы.
Итак, результат работы функции (то есть переменная, содержащая квадрат числа) будет не сразу выводиться на экран, а использоваться в дальнейшем для каких-либо действий и/или вычислений.
<script type="text/javascript">
function square(number) /* Создание функции */
{
var result = number * number; /* Создание переменной result, содержащей квадрат числа */
return result; /* Возвращение функцией переменной result */
}
var total = square(25); /* Вызов функции и занесение результата ее работы в переменную total */
document.write(total); /* Вывод переменной total на экран */
</script>
В приведенном примере при помощи оператора return происходит возвращение результата работы функции. Функция возвращает значение переменной result, содержащей квадрат числа.
Таким образом, есть функция, которая вычисляет квадрат числа и возвращает это значение.
Теперь можно вызывать функцию в любом месте программы и использовать результат ее работы (квадрат какого-либо числа) в нужных целях.
Что и происходит: результат работы функции заносится в переменную total. Затем переменная total, содержащая квадрат числа, выводится на экран.
Повторение алгоритма действий:
-
Создается функция и при помощи оператора return возвращается результат ее работы (значение переменой result).
-
Функция вызывается в любом месте программы, а результат ее работы заносится в какую-либо переменную.
-
Использование переменной, содержащей результат работы функции (значение переменой result) по своему усмотрению.
Далее тот же пример с квадратом числа, иллюстрирует другой вариант использования результата работы функции (значение переменной, содержащей квадрат числа), возвращаемый при помощи оператора return.
<script type="text/javascript">
function square(number) {
var result = number * number;
return result;
}
var k = square(21); /* Вызов функции и занесение результата ее работы в переменную k */
var g = square(15) + square(9); /* Вызов функции происходит дважды, суммируются значения возвращаемые функцией */
document.write(g); /* Вывод переменной g на экран */
alert(g + k); /* Вывод суммы двух переменных при помощи метода alert */
</script>
Читайте также...
Отзывы и комментарии:
Добавил(а):
Макс
Дата:
2019-12-05
Не понял до конца смысл return , но получилось решить задачу без return.
Добавил(а):
Макс
Дата:
2019-12-05
Перечитал заново материал, еще раз решил задачу и понял в чем смысл return.
Добавил:
Admin
Дата:
2019-12-05
Не понял до конца смысл return , но получилось решить задачу без return.
Хорошо что поняли. Я тоже не сразу понял когда-то...
Добавил(а):
Андрей
Дата:
2020-04-08
переменную m обязательно создавать? return " "+ names2+ " " + names1+ " " +names3; или можно было так?
Добавил:
Admin
Дата:
2020-04-08
переменную m обязательно создавать? return " "+ names2+ " " + names1+ " " +names3; или можно было так?
Можно и так. Работать будет, но что если у вас будет 100 переменных.....? В общем, код нужно делать как можно более компактным. И в скобки выражение заключите: return (" "+ names2+ " " + names1+ " " +names3); Экспериментируйте больше.
Добавил(а): Алексей
Дата: 2019-07-04
А если не писать return в функции?