JavaScript 中的無限迴圈

Shraddha Paghdar 2023年1月30日 2022年5月10日
  1. 在 JavaScript 中使用 while 迴圈的無限迴圈
  2. 在 JavaScript 中使用 for 迴圈的無限迴圈
  3. 在 JavaScript 中使用 setInterval 的無限迴圈
JavaScript 中的無限迴圈

有各種可用的迴圈服務於特定目的並在需求匹配時使用。我們可以使用它們中的任何一個來讓它執行無限次。

在今天的文章中,我們將瞭解不同型別的迴圈以及什麼是 JavaScript 中的無限迴圈。

在 JavaScript 中使用 while 迴圈的無限迴圈

只要測試條件為 truewhile 語句就會生成一個執行特定語句的迴圈。條件總是在它裡面的語句被執行之前被評估。

語法:

while (condition)
  statement

為了理解 while 迴圈,讓我們看看下面的例子。

例子:

let i = 0
while(i < 3) {
  console.log(i);
  i += 1;
}

在上面的例子中,i < 3條件。這是一個表示式,在迴圈的每一步之前都會被評估。

如果此條件的計算結果為 true,則執行其中寫入的語句。因此,直到 i 的值小於 3,它才會列印 i 的當前值。

一旦條件評估為 falsewhile 迴圈執行停止並繼續執行 while 迴圈之後的語句。

console.log(i); i += 1statement,它是一個可選語句,只要條件為 true 時執行。在我們的示例中,console.log 是在 i 的值小於 3 之前執行的語句。

當上述程式碼在任何瀏覽器中執行時,你將獲得以下輸出。

輸出:

0
1
2

要使此迴圈無限執行,請將條件指定為 true,它將無限執行。這裡唯一的缺點是 JavaScript 是單執行緒的。

所以它會阻塞當前執行緒,你的視窗會凍結。

在 JavaScript 中使用 for 迴圈的無限迴圈

for 語句是 JavaScript 提供的內建迴圈。它建立了一個迴圈,該迴圈採用三個可選表示式,括在括號中。

這些表示式用分號隔開,後面是需要在迴圈中執行的塊語句。

語法:

for ([initialization]; [condition]; [final-expression])
  statement

為了理解 for 迴圈,讓我們看看下面的例子。

例子:

for(let i = 0; i < 3; i++) {
  console.log(i)
}
// for(;;) {
//   console.log("hello world!")
// }

在上面的例子中,let i = 0for 迴圈的初始化。它是在迴圈開始之前計算一次的表示式或變數宣告。

該表示式可以使用可選的關鍵字 varlet 宣告新變數。用 var 關鍵字宣告的變數不是迴圈的區域性變數;它們與 for 迴圈在同一範圍內。

我們的變數 i 是用宣告的本地變數 let 宣告的。

i < 3for 迴圈的條件。它是在迴圈的每次迭代之前評估的表示式。

如果該表示式為 true,則執行該語句。在我們的示例中,直到 i 的值小於 3,它才會列印 i 的當前值。

此調節測試是可選引數。如果省略,則條件始終計算為 true

如果表示式的計算結果為 false,則執行跳轉到 for 構造之後的第一個表示式。

i++final-expression。它是在每次迴圈迭代結束時計算的表示式。

這發生在對條件的下一次評估之前。它每次都更新 i 的值。

console.log(i)語句。它是在條件評估為 true 時執行的語句。

for() 迴圈 的文件中查詢更多資訊。

當上述程式碼在任何瀏覽器中執行時,你將獲得以下輸出。

輸出:

0
1
2

要使這個迴圈無限執行,不要指定任何條件(如上面註釋程式碼所示),它將無限執行。這裡唯一的缺點是 JavaScript 是單執行緒的。

所以它會阻塞當前執行緒,你的視窗會凍結。

在 JavaScript 中使用 setInterval 的無限迴圈

JavaScript 預設提供了 setInterval() 方法。這個方法暴露在 WindowsWorker 介面中,重複呼叫一個函式或執行一段程式碼,每次呼叫之間有固定的時間延遲。

setInterval() 方法返回唯一標識間隔的間隔 ID,以便你以後可以通過呼叫 clearInterval() 將其刪除。

語法:

const intervalID = setInterval(code, [delay]);

為了理解 setInterval,讓我們看看下面的例子。

例子:

setInterval(() => {
  console.log('Hello world')
}, 1);

console.log('Hello world') 是上面例子中的程式碼。一種可選語法,允許你包含字串而不是函式,每延遲毫秒編譯和執行一次。

1delay,可選引數,指定時間;以毫秒為單位,計時器應該在指定函式或程式碼的執行之間延遲。如果未指定,則預設值為 0。

此函式返回 interval ID,一個非零數值,用於標識由 setInterval() 呼叫建立的計時器。要取消間隔,我們可以將此值傳遞給 clearInterval()

setInterval() 的文件中查詢更多資訊。

這個函式的優點是它不會阻塞 JavaScript 的執行,它會無限次返回,直到間隔被清除。要清除間隔,請呼叫 clearInterval() 函式。

輸出:

'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
...
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

相關文章 - JavaScript Loop