return必須是使用在函數里面的
return有2個作用,結束函數和返回結果
let aa = function() { for(var i = 0; i < 5; i++) { console.log(i) if (i == 3) { // return // break // 跳出整個循環 // continue // 跳出當前循環 } } } 使用return的情況:aa() ;// 0 1 2 3 let bb = function () { let arr = [1, 2, 3, 4, 5] arr.forEach(item => { console.log(item) if (item == 3) { console.log('item') // return // break // 語法報錯 console.log('return') } }) } 使用return的情況: bb() // 1 2 3 item 4 5
以上得出: for 使用return 、 break,是跳出了整個循環。
forEach 使用return只是跳出了當前的循環, 使用break報語法錯誤。
forEach 無法在所有元素都傳遞給調用的函數之前終止遍歷
那么如何在forEach 跳出整個循環,可以使用try ,然后主動拋出一個錯誤:
let bb = function () { let arr = [1, 2, 3, 4, 5] try { arr.forEach(item => { console.log(item) if (item == 3) { console.log('item') // return // break // 語法報錯 throw new error // 主動去拋出一個錯誤 console.log('return') } }) } catch { console.log('跳出來了') } } bb() // 1 2 3 item 跳出來了
try/catch/finally
try 語句允許我們定義 在執行的時候 進行錯誤測試的 代碼塊
catch 就是在try語句遇到錯誤的時候,所執行的代碼
finally 就是在 try 和catch之后 ,無論有無異常都執行
轉自:https://blog.csdn.net/qq_42341025/article/details/99974038
let arr = [7,5,4,3,1,5,2,6,6,3,4] arr.forEach((item,index) => { if(index === 3) { return //不能終止循環 } })
也可以用for代替forEach
let arr = [7,5,4,3,1,5,2,6,6,3,4] for(let i = 0; i < arr.length; i ++) { if(i === 3) { return //可以終止循環 } }