国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JavaScript跳出循環的三種方法(break, return, continue)

2024-05-06 16:53:50
字體:
來源:轉載
供稿:網友

前言:

一位前端界的大神讓我去思考的一個問題, 給了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語句時, 即使函數主題中還有其他語句, 函數執行也會停止!

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

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

<form id="form" onSubmit="return false">...</form>

this對應的全局變量:

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

<!DOCTYPE html><html><head>  <title></title></head><body><script type="text/javascript">  function a() {    console.log(window === this)  }  a();</script></body></html>

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

<!DOCTYPE html><html><head>  <title></title></head><body><script type="text/javascript">  'use strict'  function a() {    console.log(window === this)  }  a();</script></body></html>

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 莱州市| 睢宁县| 大同县| 隆尧县| 吉木乃县| 敖汉旗| 大化| 天长市| 武鸣县| 无为县| 望谟县| 天祝| 新营市| 舒兰市| 介休市| 潼关县| 凤翔县| 达州市| 明水县| 惠州市| 金寨县| 陇南市| 万宁市| 出国| 寿光市| 大竹县| 广安市| 西昌市| 泾川县| 司法| 石柱| 阜平县| 大兴区| 鲜城| 丰城市| 芦山县| 内江市| 堆龙德庆县| 威远县| 永春县|