>每個編程語言都使用循環反复執行代碼塊。 循環對於處理陣列,列表或重複操作至關重要,直到滿足特定條件為止。 JavaScript提供多種循環類型。此概述探討了每種類型,突出了它們的應用程序和比較優勢。
> 和while
最基本的循環do...while
循環是相似的,但是在每次迭代之後檢查條件while
,保證至少一個執行。 do...while
>
// Process an array until it's empty let queue1 = ["a", "b", "c"]; while (queue1.length) { let item = queue1.shift(); console.log(item); } // Similar, but handles empty array gracefully let queue2 = []; do { let item = queue2.shift() ?? "empty"; console.log(item); } while (queue2.length);
for
環是迭代特定數量的理想選擇。 對於重複任務而言,這是強大而有效的。 雖然最初對初學者感到艱鉅,但了解其結構可以簡化其使用。 for
和
// Log numbers 1 to 5 for (let i = 1; i <= 5; i++) { console.log(i); }
for...of
循環提供了一種簡潔的方式,可以迭代疑問對象,例如數組,地圖,集合和字符串。 與傳統for await...of
循環相比,它簡化了數組遍歷。
for...of
不限於內置迭代物;可以通過實現峰值協議(添加for
方法)來創建自定義迭代。
let myList = ["a", "b", "c"]; for (let item of myList) { console.log(item); }
for...of
注意:[Symbol.iterator]
>
for await...of
async function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function* aNumberAMinute() { let i = 0; while (true) { yield i++; await delay(60000); } } for await (let i of aNumberAMinute()) { console.log(i); if (i >= 59) break; }
for await...of
forEach
>對每個數組元素執行一次提供的函數。雖然歷史上比map
循環慢,但現代的JavaScript引擎已將這種性能差異降至最低。
forEach
map
循環forEach
for
map
循環在對象的枚舉屬性上迭代。 它還包括繼承的屬性,這可能是意外行為的來源。 它最適合於對物體文字進行迭代,而對象文字不關心屬性。 關鍵順序現在在瀏覽器中保持一致。
// Process an array until it's empty let queue1 = ["a", "b", "c"]; while (queue1.length) { let item = queue1.shift(); console.log(item); } // Similar, but handles empty array gracefully let queue2 = []; do { let item = queue2.shift() ?? "empty"; console.log(item); } while (queue2.length);
以上是關於JavaScript循環的所有內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!