當我們在Chrome的console視窗鍵入如下程式碼,執行一個say()的函式,除了console.log 列印出 Hello World! 之外,下列有個往左的灰色箭頭接著undefined,這個 undefined 就是函式表達式的回傳值。
回傳值(return value)就是函式表達式輸出的值,可以讓其他的程式碼取用。在say()這個函式裡,並沒有要它回傳任何值,只要求它console.log在控制台印出Hello World!,並沒有回傳任何值。等於是打籃球時都是自幹自的,不往外傳與隊友合作得分。
我們在 say 函式中加入 return “Hello World!” 這一串,告訴它把值傳出來。
結果可以看到,往左邊的箭頭之後接的灰色 undefined變成紅色的”Hello world!”了。
函式表達式的輸出值叫做回傳值( return value ),在呼叫帶有回傳值的函式的時候,可以把回傳值儲存在變數中,與其他程式碼結合使用,或是傳遞給另一個函式使用。
在square這個函式中,帶入number這個參數,讓number相乘。
接著在下面呼叫square函式,帶入square(2)當參數,所以等於是先算 2 * 2 = 4,再把值傳給外層的square函式,算出4 * 4 = 16。
函式可以接受多個參數,卻只能回傳一個值,如果沒告訴它要回傳什麼,它就回傳undefined。
而return的另一個妙用,就是用來中斷函式的執行:「如果函式的任一個參數無效,就提前跳出函式。無效指的是,參數不是函式正常執行所需的那種參數。」
var nickName = function(name){
if(name==='歐陽鋒'){
return;
}
return name;
}
nickName('郭靖'); //郭靖
nickName('歐陽鋒'); //undefined 跳出函式
所以return也可以拿來中斷函式的執行喔。