iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

JavaScript老學徒筆記—馬步篇系列 第 14

【Day13】return的妙傳得分

當我們在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也可以拿來中斷函式的執行喔。


上一篇
【Day12】能力封裝--函式
下一篇
【Day14】變數的地盤—作用域(scoop)與提升(Hoisting)
系列文
JavaScript老學徒筆記—馬步篇35

尚未有邦友留言

立即登入留言