JavaScript 中的無限迴圈
有各種可用的迴圈服務於特定目的並在需求匹配時使用。我們可以使用它們中的任何一個來讓它執行無限次。
在今天的文章中,我們將瞭解不同型別的迴圈以及什麼是 JavaScript 中的無限迴圈。
在 JavaScript 中使用 while
迴圈的無限迴圈
只要測試條件為 true
,while
語句就會生成一個執行特定語句的迴圈。條件總是在它裡面的語句被執行之前被評估。
語法:
while (condition) statement
為了理解 while
迴圈,讓我們看看下面的例子。
例子:
let i = 0
while (i < 3) {
console.log(i);
i += 1;
}
在上面的例子中,i < 3
是條件
。這是一個表示式,在迴圈的每一步之前都會被評估。
如果此條件的計算結果為 true
,則執行其中寫入的語句。因此,直到 i
的值小於 3,它才會列印 i
的當前值。
一旦條件評估為 false
,while
迴圈執行停止並繼續執行 while
迴圈之後的語句。
console.log(i); i += 1
是 statement
,它是一個可選語句,只要條件為 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 = 0
是 for
迴圈的初始化。它是在迴圈開始之前計算一次的表示式或變數宣告。
該表示式可以使用可選的關鍵字 var
或 let
宣告新變數。用 var
關鍵字宣告的變數不是迴圈的區域性變數;它們與 for
迴圈在同一範圍內。
我們的變數 i
是用宣告的本地變數 let
宣告的。
i < 3
是 for
迴圈的條件。它是在迴圈的每次迭代之前評估的表示式。
如果該表示式為 true
,則執行該語句。在我們的示例中,直到 i
的值小於 3,它才會列印 i
的當前值。
此調節測試是可選引數。如果省略,則條件始終計算為 true
。
如果表示式的計算結果為 false
,則執行跳轉到 for
構造之後的第一個表示式。
i++
是 final-expression
。它是在每次迴圈迭代結束時計算的表示式。
這發生在對條件的下一次評估之前。它每次都更新 i
的值。
console.log(i)
是語句
。它是在條件評估為 true
時執行的語句。
在 for()
迴圈 的文件中查詢更多資訊。
當上述程式碼在任何瀏覽器中執行時,你將獲得以下輸出。
輸出:
0
1
2
要使這個迴圈無限執行,不要指定任何條件(如上面註釋程式碼所示),它將無限執行。這裡唯一的缺點是 JavaScript 是單執行緒的。
所以它會阻塞當前執行緒,你的視窗會凍結。
在 JavaScript 中使用 setInterval
的無限迴圈
JavaScript 預設提供了 setInterval()
方法。這個方法暴露在 Windows
和 Worker
介面中,重複呼叫一個函式或執行一段程式碼,每次呼叫之間有固定的時間延遲。
setInterval()
方法返回唯一標識間隔的間隔 ID,以便你以後可以通過呼叫 clearInterval()
將其刪除。
語法:
const intervalID = setInterval(code, [delay]);
為了理解 setInterval
,讓我們看看下面的例子。
例子:
setInterval(() => {console.log('Hello world')}, 1);
console.log('Hello world')
是上面例子中的程式碼。一種可選語法,允許你包含字串而不是函式,每延遲毫秒編譯和執行一次。
1
是 delay
,可選引數,指定時間;以毫秒為單位,計時器應該在指定函式或程式碼的執行之間延遲。如果未指定,則預設值為 0。
此函式返回 interval ID
,一個非零數值,用於標識由 setInterval()
呼叫建立的計時器。要取消間隔,我們可以將此值傳遞給 clearInterval()
。
在 setInterval()
的文件中查詢更多資訊。
這個函式的優點是它不會阻塞 JavaScript 的執行,它會無限次返回,直到間隔被清除。要清除間隔,請呼叫 clearInterval()
函式。
輸出:
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
'Hello world'
...
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