JavaScript循環語句

JavaScript中的循環語句有三種:for循環、while循環和do...while循環。這些循環語句可以幫助我們重復執行一段代碼,直到滿足某個條件為止。

  1. for循環: for循環是最常用的循環語句之一,它包含一個初始化表達式、一個條件表達式和一個遞增/遞減表達式。例如:
for (let i = 0; i < 10; i++) {console.log(i);
}

上面的代碼將會打印出0到9的數字。for循環的難點在于理解循環的三個部分的執行順序和注意循環變量的作用范圍。

在遍歷的時候,采用一般的 for 循環和 for...in 循環得到的結果不同。

for...in 循環會自動跳過那些沒被賦值的元素,而 for 循環則不會,它會顯示出 undefined。如:

<button onclick="myFunction()">點擊這里</button>
<p id="demo"></p>
<script>
function myFunction(){var array = new Array();var x;var txt=""array[0] = 1;array[3] = 4;array[4] = 7;array[10] = 9;for( x in array ){alert(array[x]);     // 依次顯示出 1 4 7 9} alert(array.length);    // 結果是11for( var i=0 ; i<4 ; i++){alert(array[i]);     // 依次顯示出 1 undefined undefined 4 }document.getElementById("demo").innerHTML = txt;
}
</script>
  1. while循環: while循環只有一個條件表達式,只要條件為真,就會一直執行循環體中的代碼。例如:
let i = 0;
while (i < 10) {console.log(i);i++;
}

這段代碼與上面的for循環代碼功能相同,也會打印出0到9的數字。while循環的難點在于注意循環條件的設置,確保循環最終會結束。

  1. do...while循環: do...while循環與while循環類似,但是它會先執行循環體中的代碼,然后再判斷條件是否為真。至少會執行一次循環體中的代碼。例如:
let i = 0;
do {console.log(i);i++;
} while (i < 10);

這段代碼也會打印出0到9的數字,不同的是即使條件不滿足,循環體中的代碼至少會執行一次。do...while循環的難點在于理解循環體中代碼的執行順序。

特殊情況的舉例:

  1. 無限循環: 有時候我們可能因為某些原因意外地創建了一個無限循環。例如:
for (;;) {console.log("無限循環");
}

這段代碼會一直執行,因為沒有設置循環的結束條件。在處理無限循環時,我們可以使用break語句來提前結束循環。

  1. 循環嵌套: 循環之間可以相互嵌套,這樣可以實現更復雜的循環邏輯。例如:
for (let i = 0; i < 3; i++) {for (let j = 0; j < 3; j++) {console.log(i, j);}
}

這段代碼會打印出0到2之間的數字的所有組合。在處理循環嵌套時,我們需要注意循環變量的作用范圍和內外循環的執行順序。

注意:

  • for?: 比較適合遍歷數組,字符串等等。
  • ?for in?: 比較適合遍歷對象,遍歷對象時使用這個再合適不過了。
  • ?while?: while 的話,與 for 的使用場景差不多。唯一不同的是,遍歷的條件必須滿足。
  • ?do while?: 至少執行一邊的循環,遍歷數組和字符串也是很方便。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20140.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

富士攝像機X-H2S MOV格式化后重新寫入后的恢復方法

X-H2S是富士數碼的一款旗艦機型&#xff0c;支持4K/6K高清&#xff0c;視頻編碼為最新的HVC。下面我們來看下富士數碼攝像機恢復案例。 故障存儲:512G存儲卡 Exfat文件系統 故障現象: 512G的卡誤格式化后又進行了拍攝&#xff0c;卡使用了120G不到的空間&#xff0c;其它底…

【副業】12種程序員副業大匯總

1&#xff1a;寫博客。技術能力可以的寫技術文章輸出&#xff0c;比如當前網站、掘金、阿里云社區、騰訊云社區、其他社區。 2&#xff1a;賣課程。大廠高P跟知識付費平臺合作、錄課賣課程、比如極課時間、慕課網、騰訊課堂。 3&#xff1a;寫書。技術大拿出書&#xff0c;掙稿…

簡述Vue中同時發送多個請求怎么操作?

在Vue中同時發送多個請求&#xff0c;我們通常使用axios這個庫&#xff0c;因為它基于Promise&#xff0c;可以很好地處理異步操作。以下是兩種常用的方法來同時發送多個請求&#xff1a; 方法一&#xff1a;使用Promise.all() 定義多個請求&#xff1a; 使用axios.get()或axi…

【EFK日志系統】docker一鍵部署kibana、es-head

docker一鍵部署kibana、es-head kibana部署es-head部署 上一篇文章搭建了es集群 規劃服務器是 es01:172.23.165.185 es02:172.23.165.186 es03:172.23.165.187 那么kibana就搭建在主節點es01:172.23.165.185 按照順序參考&#xff1a; docker一鍵部署EFK系統&#xff08;elas…

使用 Vue 3 和 JsBarcode 開發一維碼顯示組件

在現代前端開發中&#xff0c;條形碼&#xff08;或稱一維碼&#xff09;在許多應用場景中非常常見&#xff0c;例如商品管理、物流跟蹤等。本文將介紹如何使用 Vue 3 和 JsBarcode 庫來創建一個靈活的一維碼顯示組件&#xff0c;并展示如何在應用中使用它。 1. 安裝必要的依賴…

簡述Vue 的響應式原理中 Object.defineProperty 有什 么缺陷 ?

Vue.js 2.x 的響應式原理主要依賴于 Object.defineProperty 方法來實現數據劫持&#xff0c;即當數據發生變化時&#xff0c;能夠觸發視圖更新。然而&#xff0c;Object.defineProperty 方法在 Vue 的響應式系統中存在一些缺陷&#xff1a; 無法監聽數組的變化&#xff1a; Obj…

詳解生成式人工智能的開發過程

回到機器學習的“古老”時代&#xff0c;在您可以使用大型語言模型&#xff08;LLM&#xff09;作為調優模型的基礎之前&#xff0c;您基本上必須在所有數據上訓練每個可能的機器學習模型&#xff0c;以找到最佳&#xff08;或最不糟糕&#xff09;的擬合。 開發生成式人工智能…

【linux】線程同步和生產消費者模型

線程同步 當我們多線程訪問同一個臨界資源時&#xff0c;會造成并發訪問一個臨界資源&#xff0c;使得臨界資源數據不安全&#xff0c;我們引入了鎖的概念&#xff0c;解決了臨界資源訪問不安全的情況&#xff0c;對于線程而言競爭鎖的能力有強有弱&#xff0c;對于之前就搶到…

系統架構設計師【第9章】: 軟件可靠性基礎知識 (核心總結)

文章目錄 9.1 軟件可靠性基本概念9.1.1 軟件可靠性定義9.1.2 軟件可靠性的定量描述9.1.3 可靠性目標9.1.4 可靠性測試的意義9.1.5 廣義的可靠性測試與狹義的可靠性測試 9.2 軟件可靠性建模9.2.1 影響軟件可靠性的因素9.2.2 軟件可靠性的建模方法9.2.3 軟件的可靠性模…

實物資產的市場主線將逐步回歸

民生證券認為&#xff0c;投資者逐漸意識到長期趨勢并沒有發生變化&#xff0c;這或許正是本周最大的變化。在預期博弈重回冷靜期后&#xff0c;去金融化背景下實物資源占優的市場主線也將逐步回歸。 1 高低切換后的冷靜期 從4月下旬至上周&#xff0c;A股市場呈現出由高位資產…

用windows server backup備份文件夾到網絡共享文件夾并恢復

一、備份 開始 運行windows server backup,在右邊的窗格中點擊“備份計劃” 選擇備份配置 因為我們要備份的是一個文件夾&#xff0c;所以&#xff0c;選“自定義”&#xff0c;卷即為磁盤分區。 選擇要備份的項 點擊添加項目&#xff0c;可依次添加多個備份項目。 勾選需要…

汽車MCU虛擬化--對中斷虛擬化的思考(2)

目錄 1.引入 2.TC4xx如何實現中斷虛擬化 3.小結 1.引入 其實不管內核怎么變&#xff0c;針對中斷虛擬化無非就是上面兩種&#xff0c;要么透傳給VM&#xff0c;要么由Hypervisor統一分發。汽車MCU虛擬化--對中斷虛擬化的思考(1)-CSDN博客 那么&#xff0c;作為車規MCU龍頭…

MySQL 視圖(2)

上一篇&#xff1a;MySQL視圖&#xff08;1&#xff09; 基于其他視圖 案例對 WITH [CASCADED | LOCAL] CHECK OPTION 進行釋義 創建視圖時&#xff0c;可以基于表 / 多個表&#xff0c;也可以使用 其他視圖表 / 其他視圖 其他視圖 的方式進行組合。 總結 更新視圖&#x…

【HTML】tabindex

當給 div 標簽以 button 角色&#xff1a; <div role"button">這時要指定其 tabindex&#xff0c;因此正確的寫法是&#xff1a; <div role"button" tabindex"0">索引值不應當大于0&#xff0c;見a11y-positive-tabindex

Open3D(C++) Ransac擬合多項式曲線

目錄 一、算法原理一、代碼實現三、結果展示本文由CSDN點云俠原創,Open3D(C++) Ransac擬合多項式曲線,爬蟲自重。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲與GPT生成的文章。 一、算法原理 RANSAC(Random Sample Consensus)是一種用于擬合模型的迭…

設計模式深度解析:分布式與中心化

設計模式在軟件開發中扮演著至關重要的角色,它們提供了一套經過驗證的解決方案,用于解決常見的設計問題。在分布式和中心化這兩種不同的系統架構中,設計模式的應用也有所不同。以下是對這兩種架構下設計模式的深度解析: 分布式系統設計模式 在分布式系統中,由于系統被拆…

004 仿muduo實現高性能服務器組件_Buffer模塊與Socket模塊的實現

?&#x1f308;個人主頁&#xff1a;Fan_558 &#x1f525; 系列專欄&#xff1a;仿muduo &#x1f339;關注我&#x1f4aa;&#x1f3fb;帶你學更多知識 文章目錄 前言Buffer模塊Socket模塊 小結 前言 這章將會向你介紹仿muduo高性能服務器組件的buffer模塊與socket模塊的實…

【Leetcode 706 】設計哈希映射——數組嵌套鏈表(限制哈希Key)

題目 不使用任何內建的哈希表庫設計一個哈希映射&#xff08;HashMap&#xff09;。 實現 MyHashMap 類&#xff1a; MyHashMap() 用空映射初始化對象void put(int key, int value) 向 HashMap 插入一個鍵值對 (key, value) 。如果 key 已經存在于映射中&#xff0c;則更新其…

MATLAB的plot3使用技巧|更改視角|例程分享鏈接

plot3命令 MATLAB的plot3函數是用來繪制3D圖形的函數。它可以將三維數據可視化為線段、點、曲線等形式。plot3函數可以用于繪制三維空間中的曲線、曲面、散點圖等。 plot3函數的基本用法是&#xff1a; plot3(X,Y,Z)&#xff1a;繪制三維線段&#xff0c;其中X、Y、Z分別是包…

兩個雙指針 的 “他“和“ 她“會相遇么? —— “雙指針“算法 (Java版)

本篇會加入個人的所謂魚式瘋言 ??????魚式瘋言:??????此瘋言非彼瘋言 而是理解過并總結出來通俗易懂的大白話, 小編會盡可能的在每個概念后插入魚式瘋言,幫助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能說的不是那么嚴謹.但小編初心是能讓更多人能接…