傳回關鍵字

使用 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 的用途為何?

將程式碼傳回函式的開頭。
指定函式的最終結果。