return 关键字

使用 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 的用途是什么?

将代码返回到函数开头。
指定函数的最终结果。