Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 色综合久久亚洲国产日韩,久久aⅴ免费观看,我想看一级毛片

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JavaScript里的循環(huán)方法

          JavaScript里的循環(huán)方法

          我們開始使用內(nèi)置的forEach方法

          myArray.forEach(function (value) {

          寫法簡單了許多,但也有短處:你不能中斷循環(huán)(使用break語句或使用return語句。)

          還有一種for-of循環(huán)

          它的for-of的語法:

          for-of循環(huán)使用例子:

          循環(huán)一個字符串:

          循環(huán)一個Map:

          循環(huán)一個數(shù)組(Array);

          我們可以使用const來替代let,這樣它就變成了在循環(huán)里的不可修改的靜態(tài)變量。

          循環(huán)一個擁有enumerable屬性的對象:

          for–of循環(huán)并不能直接使用在普通的對象上,但如果我們按對象所擁有的屬性進行循環(huán),可使用內(nèi)置的Object.keys()方法:

          切版 qieban(.cn)

          編寫程序時,我們經(jīng)常需要重復(fù)執(zhí)行某些操作,這時候循環(huán)結(jié)構(gòu)就顯得非常有用。JavaScript 提供了多種循環(huán)結(jié)構(gòu),以適應(yīng)不同的編程場景。以下是 JavaScript 中常見的循環(huán)結(jié)構(gòu):

          for 循環(huán)

          for 循環(huán)是最常見的循環(huán)結(jié)構(gòu)之一,它允許我們指定循環(huán)開始前的初始化代碼、循環(huán)繼續(xù)的條件以及每次循環(huán)結(jié)束時要執(zhí)行的代碼。

          基本語法

          for (初始化表達式; 循環(huán)條件; 循環(huán)后的操作表達式) {
              // 循環(huán)體代碼
          }
          

          示例:輸出 1 到 10 的數(shù)字

          for (var i=1; i <=10; i++) {
              console.log(i);
          }
          

          while 循環(huán)

          while 循環(huán)在給定條件為真時將不斷循環(huán)執(zhí)行代碼塊。與 for 循環(huán)不同,while 循環(huán)只有循環(huán)條件,沒有初始化和迭代表達式。

          基本語法

          while (條件) {
              // 循環(huán)體代碼
          }
          

          示例:使用 while 循環(huán)輸出 1 到 10 的數(shù)字

          var i=1;
          while (i <=10) {
              console.log(i);
              i++;
          }
          

          do...while 循環(huán)

          do...while 循環(huán)和 while 循環(huán)類似,但它至少會執(zhí)行一次循環(huán)體,無論條件是否為真。

          基本語法

          do {
              // 循環(huán)體代碼
          } while (條件);
          

          示例:使用 do...while 循環(huán)輸出 1 到 10 的數(shù)字

          var i=1;
          do {
              console.log(i);
              i++;
          } while (i <=10);
          

          for...in 循環(huán)

          for...in 循環(huán)用于遍歷對象的屬性。

          基本語法

          for (var key in 對象) {
              // 使用 key 訪問對象屬性
          }
          

          示例:遍歷對象的屬性

          var person={
              name: "張三",
              age: 30,
              job: "軟件工程師"
          };
          
          for (var key in person) {
              console.log(key + ": " + person[key]);
          }
          

          for...of 循環(huán)

          for...of 循環(huán)用于遍歷可迭代對象(如數(shù)組、字符串等)的元素。

          基本語法

          for (var item of 可迭代對象) {
              // 使用 item 訪問元素
          }
          

          示例:遍歷數(shù)組的元素

          var fruits=["蘋果", "香蕉", "橘子"];
          for (var fruit of fruits) {
              console.log(fruit);
          }
          

          總結(jié)

          JavaScript 的循環(huán)結(jié)構(gòu)為我們提供了強大的工具來處理重復(fù)任務(wù)。for 循環(huán)適合于當(dāng)我們知道循環(huán)次數(shù)時使用;while 和 do...while 循環(huán)適合于循環(huán)次數(shù)未知,但是循環(huán)條件明確的情況;for...in 和 for...of 循環(huán)則讓對象和數(shù)組的遍歷變得更加簡潔。掌握這些循環(huán)結(jié)構(gòu)有助于我們編寫更加高效和可讀性更強的代碼。

          s是單線程的語言,單線程是指所有的程序路徑按照一定的順序執(zhí)行,只有前面的程序執(zhí)行了,后面的程序才會執(zhí)行。

          也就是說在同一時間,js只能做一件事情,為了協(xié)調(diào)瀏覽器產(chǎn)生的各種事件、網(wǎng)絡(luò)處理、前端渲染等行為,js的事件循環(huán)機制,即EventLoop應(yīng)運而生。

          JavaScript是單線程的原因

          js的設(shè)計初衷是作為瀏覽器的腳本語言,瀏覽器中涉及到與用戶互動、頻繁操作DOM等動作,如果js設(shè)計為多線程,會有很復(fù)雜的線程同步問題,即使同步問題被解決,也會降低瀏覽器的響應(yīng)效率,得不償失,因此,JavaScript被設(shè)計為單線程保證瀏覽器動作的一致性。

          事件循環(huán)(EventLoop)

          JavaScript既然被設(shè)計為單線程,是如何做到異步的呢?這時就用到了JavaScript的事件循環(huán)機制。

          如下圖所示為JavaScript事件循環(huán)的原理圖。

          如圖所示,事件循環(huán)是主線程循環(huán)讀取任務(wù)隊列中的任務(wù),直到所有的任務(wù)都被執(zhí)行。在事件循環(huán)中,JavaScript用到了棧、堆以及隊列等數(shù)據(jù)結(jié)構(gòu)。

          棧中存放的是執(zhí)行上下文,有函數(shù)被調(diào)用時,就會創(chuàng)建上下文存放在執(zhí)行棧中。

          堆中表示一個非結(jié)構(gòu)化的內(nèi)存區(qū)域,用來存放對象。隊列是指任務(wù)隊列,用于存放異步任務(wù)。

          js引擎遇到一個異步事件之后不會一直等待事件的返回結(jié)果,而是將事件掛起,繼續(xù)執(zhí)行執(zhí)行棧中的其他任務(wù)。

          當(dāng)異步事件返回結(jié)果時,js將異步事件callback函數(shù)放入隊列中,被放入隊列中的異步事件不會立即回調(diào),等到當(dāng)前執(zhí)行棧中的任務(wù)都執(zhí)行完成,處于閑置狀態(tài)的主線程按照隊列順序?qū)⑻幱谑孜皇录腸allback函數(shù)放入執(zhí)行棧中,執(zhí)行該函數(shù)的同步代碼,如果遇到了異步事件,同樣也會將其回調(diào)函數(shù)放入事件隊列中......

          如此反復(fù),就形成了一個無限循環(huán),這也是被稱為“事件循環(huán)(EventLoop)”的原因。

          宏任務(wù)(Micro task)和微任務(wù)(Macro task)

          js事件循環(huán)的基本原理已經(jīng)描述清楚,但是異步任務(wù)之間也有所不同。

          上面講到,js在執(zhí)行異步任務(wù)時,回調(diào)函數(shù)會被放在js的任務(wù)隊列中,實際上,回調(diào)函數(shù)的類別不同,執(zhí)行的優(yōu)先級也不同。

          不同的優(yōu)先級被分為兩類,一類是宏任務(wù)(Micro task),一類是微任務(wù)(Macro task)。

          回調(diào)函數(shù)是微任務(wù)時,會被放在微任務(wù)隊列,回調(diào)函數(shù)是宏任務(wù)時,會被放在宏任務(wù)隊列。微任務(wù)的優(yōu)先級高于宏任務(wù),當(dāng)主線程的任務(wù)執(zhí)行完成時,會首先去執(zhí)行微任務(wù)隊列中首位的回調(diào)函數(shù),當(dāng)微任務(wù)隊列中為空時,才回去執(zhí)行宏任務(wù)隊列中的回調(diào)函數(shù)。

          常見的微任務(wù)有:promise,常見的宏任務(wù)有setInterval等。

          因此,事件循環(huán)的執(zhí)行流程圖如下所示:

          最后:

          1)關(guān)注+私信回復(fù):“測試”,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!,其中包括了有基礎(chǔ)知識、Linux必備、Mysql數(shù)據(jù)庫、抓包工具、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試等。

          2)關(guān)注+私信回復(fù):"入群" 就可以邀請你進入軟件測試群學(xué)習(xí)交流~~


          主站蜘蛛池模板: 亚洲av成人一区二区三区观看在线| 日韩一区二区视频| 怡红院一区二区三区| 国产免费一区二区三区免费视频| 亚洲视频一区在线观看| 国精产品一区一区三区| 亚洲成人一区二区| 国产在线观看一区二区三区| 日韩欧美一区二区三区免费观看| 中文字幕亚洲综合精品一区| 国产午夜精品一区二区三区漫画| 亚洲一区二区三区在线视频| 视频在线一区二区| 一区精品麻豆入口| 亚洲一区日韩高清中文字幕亚洲 | 免费一区二区三区四区五区| 亚洲熟女综合色一区二区三区 | 精品视频在线观看一区二区| 成人精品一区二区激情| 国内精品视频一区二区八戒| 天美传媒一区二区三区| 在线|一区二区三区四区| 国产日韩精品一区二区在线观看| 丰满爆乳无码一区二区三区| 国产精品无码一区二区三区免费 | 国产福利电影一区二区三区久久久久成人精品综合 | 亚洲一区二区三区久久久久| 国产一区二区三区久久精品| 国产亚洲一区二区在线观看| 亚洲日本一区二区三区| 国产精品高清一区二区三区不卡| 亚拍精品一区二区三区| 亚洲AV成人精品日韩一区| 在线一区二区三区| 亚洲AⅤ无码一区二区三区在线| 一区二区三区影院| 精品无码人妻一区二区三区品| 亚洲日韩一区二区三区| 北岛玲在线一区二区| 中文字幕乱码一区二区免费| 蜜臀AV一区二区|