模式切换
循环
在 TypeScript 中,循环用于重复执行一段代码块,直到满足某个条件为止。TypeScript 继承了JavaScript 的所有循环结构,包括 for 循环、while 循环、do-while 循环以及 for-in 和 for-of 循环。下面是对这些循环结构的详细解释和示例:
for 循环
for 循环用于在指定次数内重复执行一段代码。
typescript
for (let initializer; condition; final - expression) {
// 循环体
}
示例:
typescript
for (let i = 0; i < 5; i++) {
console.log(i);
}
// 输出:0, 1, 2, 3, 4
while 循环
while 循环在给定条件为真时重复执行一段代码。
typescript
while (condition) {
// 循环体
}
示例:
typescript
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// 输出:0, 1, 2, 3, 4
do-While 循环
do-while 循环与 while 循环类似,但条件检查在循环体执行后进行。这意味着循环体至少会执行一次,即使条件一开始就不满足。
typescript
do {
// 循环体
} while (condition);
示例:
typescript
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
// 输出:0, 1, 2, 3, 4
for-in 循环
for-in 循环用于遍历对象的可枚举属性。
typescript
for (let variable in object) {
// 循环体
}
示例:
typescript
const obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
console.log(key, obj[key]);
}
// 输出:
// a 1
// b 2
// c 3
for-of 循环
for-of 循环用于遍历可迭代对象(如数组、字符串、Map、Set 等)的元素。
typescript
for (let element of iterable) {
// 循环体
}
示例(数组):
typescript
const array = [1, 2, 3, 4, 5];
for (let element of array) {
console.log(element);
}
// 输出:1, 2, 3, 4, 5
示例(字符串):
typescript
const str = "Hello, World!";
for (let char of str) {
console.log(char);
}
// 输出:H, e, l, l, o, ,, , ,W, o, r, l, d, !
注意点
- for-in 循环通常用于遍历对象的属性,而 for-of 循环用于遍历数组或类数组对象的元素。
- 当在数组上使用 for-in 循环时,它将枚举数组索引而不是实际元素。这是因为在 JavaScript 中,数组也是对象,它们的索引是可枚举的属性。因此,使用 for-in 循环遍历数组时,通常会得到不期望的结果。
- 在 TypeScript 中,推荐使用 for-of 循环来遍历数组和其他可迭代对象,因为它提供了更直观和更安全的迭代方式。
在使用循环时,请注意避免无限循环,并确保循环条件在适当的时候终止。此外,为了提高性能,尽量减少在循环体内的计算或函数调用,特别是当循环次数很多时。