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