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
ステートメントよりも多くのコードを使用できます。たとえば、
次の関数は、渡された値が 5 を含む文字列かどうかを
使用できます。渡された値が文字列リテラルでない場合、
不要な文字がカウントされ、関数は 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
キーワードが暗黙的に指定されるという点で
に 1 つの式が含まれ、ブロック構文がないことを示しています。
const myFunction = () => 2 + 2;
myFunction();
> 4
ブロック構文を使用してアロー関数の本文を定義する場合は、明示的な return
関数本体に式が 1 つしかない場合でも、必須です。
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
理解度をチェックする
return
の用途