整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          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語句時, 即使函數主題中還有其他語句, 函數執行也會停止!

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

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

          vector illustration web development shield sign

          ---------------------

          作者:JD9

          來源:CSDN

          原文:https://blog.csdn.net/XXJ19950917/article/details/78310346

          版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

          avaScript —— 極簡主義


          看過上一篇文章評論內容的朋友,就會明白我為什么會在這個時候穿插去寫這篇文章!越基礎的東西就越容易被大家忽視,哪里是忽視,明明是我們從心底瞧不起它;好了,朋友,請收起我們那驕傲自大、不可一世、眼高手低的心態,掌握的牢固不牢固我們自己心里還不清楚嗎?先嘲笑下自己,給自己降降溫,然后以空杯的心態去面對每一個細小的知識點,come on!

          點關注,不迷路哦~

          let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2];
          let len = arr.length;
          

          1、continue

          特點:終止當前循環體,繼續去執行下一個循環。

          for(let i = 0; i < len; i++) {
           if( arr[i] > 5 ) {
           continue;
           }
           console.log(arr[i])
          }
          
          結果:1, 2, 3, 4, 5, 1, 2
          

          2、break

          特點:退出包含在最內層(就近原則)的循環

          for(let i = 0; i < len; i++) {
           if( arr[i] > 5 ) {
           break;
           }
           console.log(arr[i])
          }
          
          結果:1, 2, 3, 4, 5
          

          寫到這里應該看出來continue和break的差別了吧,自己去觀察,最后我再作總結;接下來我們繼續進一步來挖掘什么是就近原則?

          for(let k = 0; k < 2; k++){
           for(let i = 0; i < len; i++) {
           if( arr[i] > 5 ) {
           break;
           }
           console.log(arr[i])
           }
          }
          結果:1, 2, 3, 4, 5, 1, 2, 1, 2, 3, 4, 5, 1, 2
          
          for(let k = 0; k < 1; k++){
           if ( k > 1 ) {
           break;
           }
           for(let i = 0; i < len; i++) {
           console.log(arr[i])
           }
          }
          結果:1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2
          
          for(let k = 0; k < 2; k++){
           if ( k > 0 ) {
           break;
           }
           for(let i = 0; i < len; i++) {
           if( arr[i] > 5 ) {
           break;
           }
           console.log(arr[i])
           }
          }
          結果:1, 2, 3, 4, 5
          
          for(let k = 0; k < 2; k++){
           if ( k < 1 ) {
           break;
           }
           for(let i = 0; i < len; i++) {
           if( arr[i] > 5 ) {
           break;
           }
           console.log(arr[i])
           }
          }
          結果:空
          

          小結:所謂就近原則,就是只影響包含它的最近的循環,只能受父親,不能受爺爺,也不受兒子的影響,也可以說是解耦的。也常用語switch(n){ case 1: alert(1); break; default: alert(2); }中。

          2)return

          特點:只能出現在函數體內,用來終止整個函數的執行并返回想要返回值。

          for(let i = 0; i < len; i++){
           if ( arr[i] > 5 ) {
           return false; // 只能出現在函數體內!!!
           }
           console.log(arr[i])
          }
          // 語法直接報錯,無任何輸出:
          Uncaught SyntaxError: Illegal return statement
          
          function func() {
           for(let i = 0; i < len; i++){
           if ( arr[i] > 5 ) {
           return 888;
           }
           console.log(arr[i])
           }
          }
          func();
          結果:1, 2, 3, 4, 5, 888
          

          小結: 只能用于函數體內,用以終止整個函數的執行。

          總結:

          1)使用環境,是否必須在函數體中使用;

          2)終止范圍,一條循環 or 整個循環 or 整個函數;

          3) 就近原則

          點關注,不迷路~

          同時,便于查看歷史文章。

          家好,html模板的判斷語句和Python里的寫法是一樣的,只不過每一行需要包裹在花括號和百分號里。

          ·從視圖函數里傳遞一個名稱為user的數據,user變量的值輸入小鐵,在html文件里判斷。如果user返回了數據顯示歡迎你小鐵,否則如果沒有顯示數據顯示請登錄。

          ·最后用and if來閉合判斷語句,運行Web服務,在瀏覽器里查看效果。因為user這個變量是有數據的,所以前端顯示的歡迎您小鐵。將user變量的值改成無,回到瀏覽器查看效果,這個時候瀏覽器顯示的是請登錄。

          這就是html模板文件里if判斷語句的使用方法。


          主站蜘蛛池模板: 中文字幕在线看视频一区二区三区 | 视频精品一区二区三区| 国产成人高清亚洲一区91| 国产福利电影一区二区三区久久久久成人精品综合 | 一区二区免费在线观看| 精品一区二区三人妻视频| 91无码人妻精品一区二区三区L| 一区二区日韩国产精品| 狠狠综合久久av一区二区| 精品无人区一区二区三区| 香蕉视频一区二区三区| 美女免费视频一区二区| 国产无吗一区二区三区在线欢 | 亚洲日韩AV无码一区二区三区人| 亚洲AV美女一区二区三区| 国产乱码一区二区三区爽爽爽| 亚洲人成网站18禁止一区| 亚洲国产专区一区| 亚洲第一区精品观看| 国产精品第一区第27页| 一区二区三区四区在线视频| 国产一区二区三区免费看| 亚洲第一区在线观看| 国产成人精品无码一区二区| 亚洲日韩精品一区二区三区| 国产综合一区二区| 亚洲狠狠久久综合一区77777| 亚洲午夜精品一区二区| 亚洲高清日韩精品第一区| 久久毛片一区二区| 福利一区在线视频| 精品视频一区二区三区四区五区| 日韩人妻无码一区二区三区综合部 | 亚洲午夜精品一区二区公牛电影院| 3d动漫精品啪啪一区二区中| 中文字幕乱码一区久久麻豆樱花| 日韩精品人妻一区二区三区四区 | 又硬又粗又大一区二区三区视频| 日本不卡一区二区三区| 91午夜精品亚洲一区二区三区| 极品少妇一区二区三区四区|