Синтаксис оператора return
ReturnStatement [Yield, Await] :
return ;
return [не LineTerminator здесь] Expression [+In, ?Yield, ?Await] ;
Оператор return заставляет функцию прекращать выполнение и, в большинстве случаев, возвращает значение вызывающей стороне. Если выражение Expression не указано, возвращаемое значение является undefined (не определено). В противном случае возвращаемое значение является значением Expression. Оператор return может не возвращать значение вызывающей стороне в зависимости от окружающего контекста. Например, в блоке try запись завершения оператора return может быть заменена другой записью завершения во время оценки блока finally.
14.10.1 Семантика времени выполнения: оценка
ReturnStatement : return ;
1. Вернуть Completion { [[Type]]:return
, [[Value]]: undefined, [[Target]]:empty
}.
ReturnStatement : return Expression ;
1. Пусть exprRef будет результатом вычисления Expression. 2. Пусть exprValue будет ? GetValue(exprRef). 3. Если ! GetGeneratorKind() является async, установить exprValue на ? Await(exprValue). 4. Вернуть Completion { [[Type]]: return, [[Value]]: exprValue, [[Target]]: empty }.
Видео на тему «Функция возвращает»
Информационные ссылки
Стандарт ECMAScript — Раздел «14.10 The return Statement» — https://tc39.es/ecma262/#sec-return-statement