在JavaScript裏面,通常咱們想讓程序在function裏面執行到一半時,通過判斷或者完成某種操做後中止執行後面的代碼,會用return結束掉function。函數
例如:spa
//去除先後的空格
function spaceWord(vRet){code
if(!vRet) return vRet; //條件循環 當不知足自身的條件的時候繼續循環,當達到條件的時候 終止運行 通常用return //while這樣的循環語句能夠中斷代碼的執行, while (true) {//推出條件 if (vRet.indexOf (' ') == 0) { vRet = vRet.substring(1, parseInt(vRet.length)); } else if ((parseInt(vRet.length) != 0) && (vRet.lastIndexOf (' ') == parseInt(vRet.length) - 1)) { vRet = vRet.substring(0, parseInt(vRet.length) - 1); } else { return vRet;//使用return 終止運行 跳出執行體 } }
}
console.log(spaceWord(spaceStr));ip
可是,若是我要作多層的判斷,並且要中斷的只是其中一個判斷後面的代碼呢? string
function(){io
//代碼1... if(stopRun == true){ //代碼2 ... if(cando == false){ return } //代碼3 ... } //代碼4 ...
}console
若是使用return 終止運行,則代碼3與代碼4則不能執行;ast
對用這種需求妙用break來實現代碼的中斷,而不結束整個函數。function
例如:
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)
}
上面的邏輯,當執行到代碼2語句時,遇到break語句,則代碼跳出循環執行代碼4 則運行輸出爲:2 4;則證實代碼3被阻止了,可是沒有阻止函數的運行;
break不能在if裏面用,可是能夠在循環裏面用,因此用while這樣的循環語句能夠中斷代碼的執行,理論上全部循環均可以實現該功能,選擇while是由於它簡潔並且能夠代替if作判斷。
!!!注意!!!while最後記得加上一個break,否則會變成死循環。
能夠在while中間加入多個if()break做爲斷點,控制邏輯的流程。
function(){
var a=0; while(a==0){ console.log("我要") a++ if(a!=1)break console.log("我再要") a++ if(a!=2)break console.log("我還要") break }
}