在開發中不熟悉這三者區別的同學,一般都知道return可以中止,但會根據字面意思覺得return true 中止當前函數執行,但其後的函數還會繼續執行。return false 中止當前函數執行,其後的函數不會執行,這是錯誤的想法。先看下麵控制台的例子 一:可以看出三者都中止了函數執行,return ...
在開發中不熟悉這三者區別的同學,一般都知道return可以中止,但會根據字面意思覺得return true 中止當前函數執行,但其後的函數還會繼續執行。return false 中止當前函數執行,其後的函數不會執行,這是錯誤的想法。先看下麵控制台的例子
一:可以看出三者都中止了函數執行,return後的語句不再執行,唯一區別是函數的返回值不同。
二:return只是中止當前函數,與其後的函數沒有關係,
可見return只是中止當前函數對其後函數沒有影響
三:對於函數中的for迴圈里的return,也會中止函數,多層迴圈也立即中止。
1、return 只在當前函數有效
2、return無論返回的是啥,都有中斷當前線程的作用。
總之,return都會阻止當前函數,並返回一個值
鑒於上述,有的同學可能只是想跳出迴圈,並不想中止函數。
跳出迴圈:break,continue,只是跳出迴圈,並不中止函數
break只可用於跳出最近的for迴圈,
對於break跳出多層迴圈,需要給迴圈指定命名
continue同樣適用此法跳出多層迴圈
特別註意:break,continue語句只能用在while語句、do/while語句、for語句、for/in或者for/of語句的迴圈體內
番外:有些同學會用return來結束迴圈,但使用了for外的迴圈,例如each,foreach
對於上圖,return中止當前函數,即each的匿名函數,所以對外層函數沒有影響,故不能結束迴圈。