JavaScript跳出循环的三种方法(break, return, continue)
前言:
一位前端界的大神让我去思考的一个问题,给了Big-man一段代码,如下:
functionSeriously(options){ //ifcalledwithout'new',makeanewobjectandreturnthat if(window===this||!(thisinstanceofSeriously)||this.id!==undefined){ returnnewSeriously(options); } }
return语句执行之后还会继续执行吗?这是大神上来让我解决的问题,既然提到了return那我也就随带解决JS中另外的两种结束循环的方法break,continue。
Break语句:
- break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。
- 由于它是用来退出循环或者switch语句的,所以只有当它出现在这些语句的时候,这种形式的break语句才是合法的。
- 如果一个循环的终止条件非常复杂,那么使用break语句来实现某些条件比用一个循环表达式所有的条件容易得多。
for(vari=519;i<550;i++){ if(i==522){ break; } console.log(i); alert(i); document.write(i); }
- 当i=521的时候,直接退出for这个循环。这个循环将不再被执行。
- 对于输出结果的话,可以自己去测试的吧。
Continue语句:
- continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。
- continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其他地方使用都会引起错误?
for(vari=5;i>=0;i--){ if(i==4||i==3||i==1){ continue; } console.log(i); alert(i); document.write(i); }
- 当i=4、i=3以及i=1的时候,直接跳出for循环。下次继续执行。
- 至于输出结果,还希望大家去打印一下。
Return语句:
return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方造成语法错误!
for(vari=1;i<10;i++){ if(i==8){ return; } console.log(i); alert(i); document.write(i); }
执行结果UncaughtSyntaxError:illegalreturnstatement(...)
- 错误意思是非法捕获的查询返回语句。
当执行return语句时,即使函数主题中还有其他语句,函数执行也会停止!
if(username==""){ alert("pleaseinputyourusername:"); returnfalse; }elseif(qq==""){ alert("pleaseinputyourqqnumber:"); returnfalse; }
上面的实例里,当username为空时,就不会再向下执行,在一些表单提交中,也可以通过returnfalse来阻止默认的提交方式,改用Ajax的提交方式,例如:
...
this对应的全局变量:
window==this这个Boolean等式,在不同的情况下的展现都不一样的。
functiona(){ console.log(window===this) } a();
这个时候的window===this打印出来的是true,这也就意味着this绝对等于window。
'usestrict' functiona(){ console.log(window===this) } a();
这个时候window===this返回回来的值却是false,而且打印出来的this是undefined的。
所以严格模式下面的代码操作需要更加的规范和合理才可以的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。