TypeScript 循环
循环用于重复执行同一段代码,直到满足退出条件。TypeScript 提供 for、for...of、for...in、while、do...while 等写法,数组、字符串等可迭代数据都可以配合循环处理,且循环变量可以带类型注解。
1. for 循环
由初始化、条件、步进三部分组成,适合"执行固定次数"的场景:
for (let i: number = 0; i < 3; i++) {
console.log("第", i, "次"); // 输出:第 0 次 / 第 1 次 / 第 2 次
}
2. for...of 循环
直接取出可迭代对象中的每个元素,遍历数组最常用,变量类型由编译器推断:
const fruits: string[] = ["苹果", "香蕉", "橙子"];
for (const f of fruits) {
console.log(f); // 输出:苹果 / 香蕉 / 橙子
}
3. for...in 循环
遍历对象的键名(字符串),适合拿到 key 后再取值;遍历数组时得到的是字符串下标,故数组优先用 for...of:
const user: Record<string, string | number> = { name: "小明", age: 18 };
for (const key in user) {
console.log(key, user[key]); // 输出:name 小明 / age 18
}
4. while 与 do...while
while 先判断后执行,条件为 false 时一次也不执行;do...while 先执行一次再判断,至少执行一次:
let i: number = 0;
while (i < 3) {
console.log(i); // 输出:0 / 1 / 2
i++;
}
let j: number = 5;
do {
console.log("至少执行一次"); // 输出:至少执行一次
j++;
} while (j < 5);
5. break 与 continue
break 立即跳出整个循环;continue 跳过本轮剩余的语句,直接进入下一次循环:
for (let i: number = 1; i <= 5; i++) {
if (i === 3) continue; // 跳过 3
if (i === 5) break; // 到 5 提前结束
console.log(i); // 输出:1 / 2 / 4
}
小结
遍历元素优先用 for...of,需要下标或固定次数用 for,退出条件不确定用 while;break 提前退出、continue 跳过本轮。循环体内别忘了让条件最终变为 false,否则会形成死循环。