TypeScript 循环
循环语句用于重复执行一段代码,直到满足特定的退出条件。TypeScript 支持多种循环结构,与 JavaScript 中的循环相同。
1. for 循环
for 循环是最常用和最灵活的循环类型。它由三个部分组成:初始化、条件和增量/减量表达式。
语法
typescript
for (initialization; condition; increment/decrement) {
// 循环体代码
}- initialization: 在循环开始前执行一次,通常用于初始化一个计数器变量。
- condition: 在每次循环迭代开始前进行评估。如果为
true,则执行循环体。如果为false,则循环终止。 - increment/decrement: 在每次循环迭代结束后执行,通常用于更新计数器。
示例
typescript
for (let i: number = 0; i < 5; i++) {
console.log(`Iteration ${i + 1}`);
}
// 输出:
// Iteration 1
// Iteration 2
// Iteration 3
// Iteration 4
// Iteration 52. while 循环
while 循环会在指定的条件为 true 时持续执行一个代码块。
语法
typescript
while (condition) {
// 循环体代码
}条件在每次循环迭代开始之前被检查。如果一开始条件就为 false,那么循环体将一次也不会执行。
示例
typescript
let count: number = 0;
while (count < 3) {
console.log(`Count is ${count}`);
count++;
}
// 输出:
// Count is 0
// Count is 1
// Count is 23. do...while 循环
do...while 循环与 while 循环类似,但它保证循环体至少会执行一次,因为条件是在循环体执行之后才进行检查。
语法
typescript
do {
// 循环体代码
} while (condition);示例
typescript
let num: number = 5;
do {
console.log(`Number is ${num}`);
num++;
} while (num < 5);
// 输出:
// Number is 54. for...of 循环
for...of 循环(在 ES6 中引入)用于遍历可迭代对象(如数组、字符串、Map、Set 等)的元素值。
语法
typescript
for (let element of iterable) {
// 对每个 element 执行的代码
}示例
typescript
let colors: string[] = ["red", "green", "blue"];
for (let color of colors) {
console.log(color);
}
// 输出:
// red
// green
// blue
let message: string = "hello";
for (let char of message) {
console.log(char);
}
// 输出:
// h
// e
// l
// l
// o5. for...in 循环
for...in 循环用于遍历一个对象的所有可枚举属性的键(key)。
语法
typescript
for (let key in object) {
// 对每个 key 执行的代码
}示例
typescript
let person = {
name: "John",
age: 30,
city: "New York"
};
for (let key in person) {
// 检查属性是否是对象自身的,而不是继承来的
if (person.hasOwnProperty(key)) {
console.log(`${key}: ${person[key]}`);
}
}
// 输出:
// name: John
// age: 30
// city: New York注意: for...in 不应用于遍历数组,因为它可能会以非预期的顺序遍历索引,并且可能包含非数字键。对于数组遍历,应优先使用 for、for...of 或数组方法(如 forEach)。
循环控制语句
break: 立即终止当前循环。continue: 跳过当前循环的本次迭代,并开始下一次迭代。
示例
typescript
// break 示例
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 当 i 等于 5 时,退出循环
}
console.log(i);
} // 输出: 0, 1, 2, 3, 4
// continue 示例
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // 当 i 等于 2 时,跳过本次迭代
}
console.log(i);
} // 输出: 0, 1, 3, 4