一、背景介紹
什么是return?
return 語句的作用是從當(dāng)前函數(shù)退出,并從那個函數(shù)返回一個值。

用 return 語句來終止一個函數(shù)的執(zhí)行,并返回 expression 的值。如果 expression 被省略, 或在函數(shù)內(nèi)沒有 return 語句被執(zhí)行,則把值 undefined 賦給調(diào)用當(dāng)前函數(shù)的表達(dá)式。
二、知識剖析
return作為返回關(guān)鍵字,它有以下兩種返回方式。
1、返回函數(shù)結(jié)果
語法為:return+表達(dá)式

語句結(jié)束函數(shù)執(zhí)行,返回調(diào)用函數(shù),而且把表達(dá)式的值作為函數(shù)的結(jié)果。
return 表示從被調(diào)函數(shù)返回到主調(diào)函數(shù)繼續(xù)執(zhí)行,返回時可附帶一個返回值, 由return后面的參數(shù)指定。return通常是必要的,因為函數(shù)調(diào)用的時候計算結(jié)果通常是通過返回值帶出的。
2、返回函數(shù)控制
語法為:return;
通常情況下return后面跟有表達(dá)式,但是并不是絕對的。此情況就是單純的將控制權(quán)轉(zhuǎn)交給主調(diào)函數(shù)繼續(xù)執(zhí)行。
在大多數(shù)情況下,為事件處理函數(shù)返回false,可以防止默認(rèn)的事件行為。 例如,默認(rèn)情況下點擊一個a元素,頁面會跳轉(zhuǎn)到該元素href屬性指定的頁,但是我們可以用return flase來阻止它的跳轉(zhuǎn)。
在js中,我們常用return false來阻止提交表單或者繼續(xù)執(zhí)行下面的代碼。 例如下面的例子:

即使a函數(shù)返回return false 阻止提交了,但是不影響 b()以及 c()函數(shù)的執(zhí)行。在Test()函數(shù)里調(diào)用a()函數(shù),那么 return false 對于Test()函數(shù)來說,只是相當(dāng)于返回值,而不能阻止Test()函數(shù)執(zhí)行。
三、常見問題
若return用在for循環(huán)中,還會執(zhí)行下一次循環(huán)嗎?
四、解決方案
代碼示例:

我們可以看到,for循環(huán)只返回return所返回的值,并不會執(zhí)行下一次循環(huán)。
五、編碼實戰(zhàn)
六、擴展思考
除了return之外,還有哪些語句可以跳出循環(huán)?
1、break

上面這個break實例,輸出的結(jié)果為:12345,當(dāng)i的值等于5的時候直接通過break跳出了循環(huán),不再繼續(xù)往下運行。
2、continue

上面這個continue實例,輸出的結(jié)果為:1234578910,當(dāng)i的值等于6的時候直接跳過,繼續(xù)執(zhí)行循環(huán)。
七、更多討論
討論點1:同樣是跳出循環(huán),return和break有什么區(qū)別?
討論點2:同樣是中斷執(zhí)行,return和return false有什么區(qū)別?
討論點3:在什么應(yīng)用場景下我們會用到break或continue?
八、參考文獻(xiàn)
參考2:javascript中break,continue和return語句用法小結(jié)
參考2: js中return的用法