使用 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
的用途為何?
將程式碼傳回函式的開頭。
指定函式的最終結果。