前言:
一位前端界的大神讓我去思考的一個(gè)問(wèn)題, 給了Big-man一段代碼,如下:
function Seriously(options) { // if called without 'new', make a new object and return that if(window === this || !(this instanceof Seriously) || this.id !== undefined) { return new Seriously(options); }}return語(yǔ)句執(zhí)行之后還會(huì)繼續(xù)執(zhí)行嗎?這是大神上來(lái)讓我解決的問(wèn)題,既然提到了return那我也就隨帶解決JS中另外的兩種結(jié)束循環(huán)的方法break, continue。
Break語(yǔ)句:
for(var i = 519; i < 550; i++) { if(i == 522) { break; } console.log(i); alert(i); document.write(i);} 當(dāng)i = 521的時(shí)候,直接退出for這個(gè)循環(huán)。這個(gè)循環(huán)將不再被執(zhí)行。 對(duì)于輸出結(jié)果的話,可以自己去測(cè)試的吧。Continue語(yǔ)句:
for(var i = 5; i >=0; i--) { if(i == 4 || i == 3 || i == 1) { continue; } console.log(i); alert(i); document.write(i);} 當(dāng)i = 4、i = 3以及i = 1的時(shí)候,直接跳出for循環(huán)。下次繼續(xù)執(zhí)行。 至于輸出結(jié)果,還希望大家去打印一下。Return語(yǔ)句:
return語(yǔ)句就是用于指定函數(shù)返回的值。return語(yǔ)句只能出現(xiàn)在函數(shù)體內(nèi),出現(xiàn)在代碼中的其他任何地方造成語(yǔ)法錯(cuò)誤!
for(var i = 1; i < 10; i++) { if(i == 8) { return; } console.log(i); alert(i); document.write(i);}執(zhí)行結(jié)果Uncaught SyntaxError: illegal return statement(...)
錯(cuò)誤意思是非法捕獲的查詢返回語(yǔ)句。當(dāng)執(zhí)行return語(yǔ)句時(shí), 即使函數(shù)主題中還有其他語(yǔ)句, 函數(shù)執(zhí)行也會(huì)停止!
<script type="text/javascript"> if(username == "") { alert("please input your username: "); return false; } else if (qq == "") { alert("please input your qq number: "); return false; }</script> 上面的實(shí)例里,當(dāng)username為空時(shí),就不會(huì)再向下執(zhí)行,在一些表單提交中,也可以通過(guò)return false來(lái)阻止默認(rèn)的提交方式,改用Ajax的提交方式,例如:
<form id="form" onSubmit="return false">...</form>
新聞熱點(diǎn)
疑難解答
圖片精選