return/break語句的妙用

在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
}

}

相關文章
相關標籤/搜索