亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

全部開發者教程

JavaScript 入門教程

JavaScript while 語句

while 語句可以在某個條件表達式為真的前提下,循環執行指定的一段代碼,直到那個表達式不為真時結束循環?!?MDN

while 語句也是一種循環語句,也稱 while 循環。

while 循環接收一個表達式,當這個表達式結果非 false 的時候,就會執行 while 循環的代碼塊。

1. 基本語法

while (表達式) {
  表達式結果為真時候執行的代碼;
}

while 的語法相對簡單,其使用的頻率沒有for循環高,可以使用 for 循環完成的都可以使用 while 循環完成,反之亦然。

例如輸出 0 到 100 的偶數,使用 while 就可以這樣做:

var num = 0
while (num <= 100) {
  if (num % 2 === 0) {
    console.log(num);
  }

  num++;
}

var i;
for (i = 0; i <= 100; i++) {
if (i % 2 === 0) {
    console.log(i);
  }
}

對比 for 循環,許多場景兩者在同一問題的處理方式上區別不大。

for 循環將初始操作、循環條件、條件判斷后要做的事情放在了規定的位置,而 while 循環只是將這些操作換個地方寫而已。

事實上 for 循環也可以寫得像 while 循環一樣:

var num = 0;
for (;num <= 100;) {
  if (num % 2 === 0) {
    console.log(num);
  }

  num++;
}

換成這樣的寫法可以說是高度一致了。

2. 使用 while 的場景

根據個人的經驗,while 比 for 循環用到的少,通常有三種情況:

  • 需要“無限循環”

相比 for 循環,while 來做無限循環更直接:

for (;;) {
  console.log('我停不下來了!!');
}

console.log('永遠也不會執行到這里 :)');

while(true) {
  console.log('我也停不下來了!!');
}

那么問題就來了,為什么需要無限循環。

主要是想將復雜的條件拿出來,自己判斷條件是否達成,然后使用 break 中斷循環。

  • 有許多不可控的量構成循環條件

當循環條件為一個復雜表達式,而又不需要用到循環計數變量的時候(循環變量不一定非要是一個數字進行累加的)。

  • 通過循環對已有變量做操作,并將這個變量作為條件或者構成條件的成員

3. 小結

可以使用 while 語句實現的需求,都可以使用 for 語句實現,但 while 更適合復雜循環條件的場景。