>每个编程语言都使用循环反复执行代码块。 循环对于处理阵列,列表或重复操作至关重要,直到满足特定条件为止。 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中文网其他相关文章!