其它循环
在JavaScript中,除了for
循环之外,还有几种其他的循环语句,用于执行重复的操作。以下是一些常见的循环语句:
1. while
循环
while
循环会持续执行,直到给定的条件不再为真。
1let i = 0;
2while (i < 5) {
3 console.log(i);
4 i++;
5}
6
7// 输出:
8// 0
9// 1
10// 2
11// 3
12// 4
2. do...while
循环
do...while
循环至少执行一次,即使条件从一开始就为假。然后它会检查条件,如果条件为真,则继续执行。
1let i = 0;
2do {
3 console.log(i);
4 i++;
5} while (i < 5);
6
7// 输出:
8// 0
9// 1
10// 2
11// 3
12// 4
3. for...in
循环
for...in
循环遍历一个对象的所有可枚举属性(包括它原型链上的属性)。
1const person = {fname:"John", lname:"Doe", age:25};
2for (const key in person) {
3 if (person.hasOwnProperty(key)) { // 检查属性是否属于对象本身,而不是原型链
4 console.log(key + ":", person[key]);
5 }
6}
7
8// 输出:
9// fname: John
10// lname: Doe
11// age: 25
4. for...of
循环
for...of
循环用于遍历可迭代对象(如数组、字符串、Map、Set、NodeList等)。
1const arr = [3, 5, 7];
2for (const value of arr) {
3 console.log(value);
4}
5
6// 输出:
7// 3
8// 5
9// 7
5. 异步循环
JavaScript的异步循环通常不是通过特定的循环语句实现的,而是通过回调函数、Promises、async/await等机制来处理异步操作的重复执行。
使用 setInterval
:
1let i = 0;
2const intervalId = setInterval(() => {
3 console.log(i);
4 i++;
5 if (i >= 5) {
6 clearInterval(intervalId);
7 }
8}, 1000);
9
10// 每隔1秒输出一个数字,从0开始到4结束
使用 async/await
和 for...of
:
1async function processAsyncIterable(asyncIterable) {
2 for await (const value of asyncIterable) {
3 console.log(value);
4 }
5}
6
7// 假设 asyncIterable 是一个异步迭代器
8processAsyncIterable(asyncIterable);
这些循环结构各有其用途和特点,可以根据具体需求选择最合适的循环语句。