return/break语句的妙用

在JavaScript内里,平常我们想让顺序在function内里实行到一半时,经由推断或许完成某种操纵后住手实行背面的代码,会用return完毕掉function。

比方:

//去除前后的空格
function spaceWord(vRet){

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));

然则,假如我要做多层的推断,而且要中缀的只是个中一个推断背面的代码呢?

function(){

//代码1...
if(stopRun == true){
    //代码2 ...
    if(cando == false){
        return
    }
    //代码3 ...
}
//代码4 ...

}

假如运用return 停止运转,则代码3与代码4则不能实行;

对用这类需求妙用break来完成代码的中缀,而不完毕全部函数。

比方:
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
}

}

    原文作者:javascriptMen
    原文地址: https://segmentfault.com/a/1190000018528988
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞