在JavaScript裏面,通常咱們想讓程序在function裏面執行到一半時,通過判斷或者完成某種操做後中止執行後面的代碼,會用return結束掉function。bash
fuction(){
//do something...
if(stopRun == true){
return
}
//continue do ...
}
複製代碼
可是,若是我要作多層的判斷,並且要中斷的只是其中一個判斷後面的代碼呢?函數
function(){
//代碼1...
if(stopRun == true){
//代碼2 ...
if(cando == false){
return
}
//代碼3 ...
}
//代碼4 ...
}
複製代碼
如上面的邏輯,cando 判斷只是想阻止‘代碼3’的執行,而‘代碼4’我仍是須要的,可是return操做已經把整個function結束掉了。 那麼下面重點來了,能夠妙用while break來實現代碼的中斷,而不結束整個函數。ui
var stopRun = true,cando = false;
function ww(){
//代碼1...
while(stopRun == true){
//代碼2 ...
console.log(2)
if(cando == false){
break
}
//代碼3 ...
console.log(3)
break
}
//代碼4 ...
console.log(4)
}
複製代碼
以上代碼輸出了spa
2 4
複製代碼
證實代碼3被阻止了,可是沒有阻止function後面代碼的執行。code
break不能在if裏面用,可是能夠在循環裏面用,因此用while這樣的循環語句能夠中斷代碼的執行,理論上全部循環均可以實現該功能,選擇while是由於它簡潔並且能夠代替if作判斷。ip
!!!注意!!! while最後記得加上一個break,否則會變成死循環。get
能夠在while中間加入多個if()break做爲斷點,控制邏輯的流程。string
function(){
var a=0;
while(a==0){
console.log("我要")
a++
if(a!=1)break
console.log("我再要")
a++
if(a!=2)break
console.log("我還要")
break
}
}
複製代碼
本人原文連接www.jianshu.com/p/9b0eee5be…it