Ключевое слово возврата

Используйте return , чтобы указать значение, которое функция должна выдать в качестве конечного результата. Когда интерпретатор достигает оператора return , функция, содержащая этот оператор, немедленно завершает работу, и указанное значение возвращается в контекст, в котором была вызвана функция:

const myFunction = function() {
   return 2 + 2;
}

myFunction();
> 4

Функцию, возвращающую значение, можно эффективно рассматривать как содержащиеся в ней данные, подобно переменной:

const myFunction = function() {
   return 2 + 2;
}

myFunction() + myFunction();
> 8

Оператор return без выражения завершает функцию и возвращает undefined :

const myFunction = function() {
   return;
}

myFunction();
> undefined

Поскольку ключевое слово return сигнализирует об окончании функции, любой код, следующий за полученным return , не выполняется:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}

myFunction();
> true

Кроме того, код, следующий за встретившимся оператором return , может привести к предупреждению (но не ошибке) в консолях разработки некоторых браузеров:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}
> unreachable code after return statement

myFunction();
> true

Опять же, это относится только к оператору return , встречающемуся во время выполнения функции, а не к любому коду, который следует за оператором return последовательно:

const myFunction = function( myParameter ) {
   if( myParameter === undefined ) {
    return "This is the result.";
   }
   return "This is the alternate result.";
}

myFunction();
> "This is the result."

myFunction( true );
> "This is the alternate result."

«Короткое замыкание» функции с использованием раннего return может обеспечить более краткий код, чем один оператор return в конце функции. Например, следующая функция определяет, является ли переданное значение строкой, содержащей пять или более символов. Если переданное значение не является строковым литералом, код, подсчитывающий символы, не нужен, и функция может немедленно вернуть false результат:

function myFunction( myString ) {
   if( typeof myString !== "string" ) {
    return false;
   }
   if( myString.length >= 5 ) {
    return true;
   } else {
    return false;
   }
}

myFunction( 100 );
> false

myFunction( "St" );
> false

myFunction( "String." );
> true

Выражения стрелочных функций уникальны тем, что ключевое слово return подразумевается, когда тело стрелочной функции содержит одно выражение и не имеет блочного синтаксиса:

const myFunction = () => 2 + 2;

myFunction();
> 4

Если вы используете блочный синтаксис для определения тела функции стрелки, требуется явный return , даже если тело функции содержит только одно выражение:

const myFunction = () => { 2 + 2 };

myFunction();
> undefined
const myFunction = () => { return 2 + 2 };

myFunction();
> 4

Проверьте свое понимание

Для чего используется return ?

Возврат кода в начало функции.
Указание конечного результата функции.