![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SYldTYwUDOiV2YzQWM4UzMzcTNhBjYzEGZhZGNwYDNz8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
這裡是修真院前端小課堂,本篇分析的主題是
【return的用法是什麼?若在for循環中,還會執行下一次循環嗎?】
一、背景介紹
什麼是return?
return 語句的作用是從目前函數退出,并從那個函數傳回一個值。
用 return 語句來終止一個函數的執行,并傳回 expression 的值。如果 expression 被省略, 或在函數内沒有 return 語句被執行,則把值 undefined 賦給調用目前函數的表達式。
二、知識剖析
return作為傳回關鍵字,它有以下兩種傳回方式。
1、傳回函數結果
文法為:return+表達式
語句結束函數執行,傳回調用函數,而且把表達式的值作為函數的結果。
return 表示從被調函數傳回到主調函數繼續執行,傳回時可附帶一個傳回值, 由return後面的參數指定。return通常是必要的,因為函數調用的時候計算結果通常是通過傳回值帶出的。
2、傳回函數控制
文法為:return;
通常情況下return後面跟有表達式,但是并不是絕對的。此情況就是單純的将控制權轉交給主調函數繼續執行。
在大多數情況下,為事件處理函數傳回false,可以防止預設的事件行為。 例如,預設情況下點選一個a元素,頁面會跳轉到該元素href屬性指定的頁,但我們可以用return flase來阻止它的跳轉。
在js中,我們常用return false來阻止送出表單或者繼續執行下面的代碼。 例如下面的例子:
即使a函數傳回return false 阻止送出了,但是不影響 b()以及 c()函數的執行。在Test()函數裡調用a()函數,那麼 return false 對于Test()函數來說,隻是相當于傳回值,而不能阻止Test()函數執行。
三、常見問題
若return用在for循環中,還會執行下一次循環嗎?
四、解決方案
代碼示例:
我們可以看到,for循環隻傳回return所傳回的值,并不會執行下一次循環。
五、編碼實戰
六、擴充思考
除了return之外,還有哪些語句可以跳出循環?
1、break
上面這個break執行個體,輸出的結果為:12345,當i的值等于5的時候直接通過break跳出了循環,不再繼續往下運作。
2、continue
上面這個continue執行個體,輸出的結果為:1234578910,當i的值等于6的時候直接跳過,繼續執行循環。
七、更多讨論
讨論點1:同樣是跳出循環,return和break有什麼差別?
讨論點2:同樣是中斷執行,return和return false有什麼差別?
讨論點3:在什麼應用場景下我們會用到break或continue?
歡迎各位在評論區讨論互動