JavaScript中的循環語句有三種:for循環、while循環和do...while循環。這些循環語句可以幫助我們重復執行一段代碼,直到滿足某個條件為止。
- 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>
- while循環: while循環只有一個條件表達式,只要條件為真,就會一直執行循環體中的代碼。例如:
let i = 0;
while (i < 10) {console.log(i);i++;
}
這段代碼與上面的for循環代碼功能相同,也會打印出0到9的數字。while循環的難點在于注意循環條件的設置,確保循環最終會結束。
- do...while循環: do...while循環與while循環類似,但是它會先執行循環體中的代碼,然后再判斷條件是否為真。至少會執行一次循環體中的代碼。例如:
let i = 0;
do {console.log(i);i++;
} while (i < 10);
這段代碼也會打印出0到9的數字,不同的是即使條件不滿足,循環體中的代碼至少會執行一次。do...while循環的難點在于理解循環體中代碼的執行順序。
特殊情況的舉例:
- 無限循環: 有時候我們可能因為某些原因意外地創建了一個無限循環。例如:
for (;;) {console.log("無限循環");
}
這段代碼會一直執行,因為沒有設置循環的結束條件。在處理無限循環時,我們可以使用break
語句來提前結束循環。
- 循環嵌套: 循環之間可以相互嵌套,這樣可以實現更復雜的循環邏輯。例如:
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?: 至少執行一邊的循環,遍歷數組和字符串也是很方便。