JS跳出迴圈的三種方法(break, return, continue)

前言:

一位前端界的大神讓我去思考的一個問題, 給了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語句執行之後還會繼續執行嗎?這是大神上來讓我解決的問題,既然提到了return那我也就隨帶解決JS中另外的兩種結束迴圈的方法break, continue。

Break語句:

break語句會使執行的程式立刻退出包含在最內層的迴圈或者退出一個switch語句。

由於它是用來退出迴圈或者switch語句的, 所以只有當它出現在這些語句的時候, 這種形式的break語句才是合法的。

如果一個迴圈的終止條件非常複雜, 那麼使用break語句來實現某些條件比用一個迴圈表示式所有的條件容易得多。

for(var i = 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(var i = 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(var i = 1; i < 10; i++) { if(i == 8) { return; } console。log(i); alert(i); document。write(i);}

執行結果Uncaught SyntaxError: illegal return statement(。。。)

錯誤意思是非法捕獲的查詢返回語句。

當執行return語句時, 即使函式主題中還有其他語句, 函式執行也會停止!

上面的例項裡,當username為空時,就不會再向下執行,在一些表單提交中,也可以透過return false來阻止預設的提交方式,改用Ajax的提交方式,例如:

。。。

this對應的全域性變數:

window == this這個Boolean等式,在不同的情況下的展現都不一樣的。

<!DOCTYPE html>

這個時候的window === this打印出來的是true,這也就意味著this絕對等於window。

<!DOCTYPE html>

這個時候window === this返回回來的值卻是false, 而且打印出來的this是undefined的。

所以嚴格模式下面的程式碼操作需要更加的規範和合理才可以的。

有想要學習前端或者轉行前端的朋友可以私信小編“學習”,歡迎大家一起學習交流,分享

JS跳出迴圈的三種方法(break, return, continue)