TypeScript 条件语句、循环语句与函数学习心得
一、条件语句
条件语句是控制程序执行路径的核心工具,它让程序根据不同的条件执行不同的代码。TypeScript 中常用的条件语句包括 if
、if...else
、if...else if...else
和 switch
。
1. if
语句
if
语句用于在条件为 true
时执行一段代码。例如:
typescript">var num: number = 5;
if (num > 0) {
console.log("数字是正数");
}
心得: if
语句简单且直观,适合单一条件判断。如果有多个条件,可以搭配 else if
使用,但一旦条件复杂,switch
语句会更具可读性。
2. if...else
语句
if...else
语句用于在条件为 true
或 false
时执行不同的代码块。
typescript">var num: number = 12;
if (num % 2 == 0) {
console.log("偶数");
} else {
console.log("奇数");
}
心得: if...else
使代码逻辑更加完整,确保每种条件都有对应的执行路径。
3. if...else if...else
语句
当需要判断多个条件时,可以使用 if...else if...else
语句。例如:
typescript">var num: number = 2;
if (num > 0) {
console.log(num + " 是正数");
} else if (num < 0) {
console.log(num + " 是负数");
} else {
console.log(num + " 不是正数也不是负数");
}
心得: 这种多条件判断结构在多个场景下很有用,但如果条件过多,代码的复杂性会提升,因此适当时可以考虑用 switch
来优化代码。
4. switch
语句
switch
语句是用于替代多层 if...else if...else
的一种方式,更加清晰易读。
typescript">var grade: string = "A";
switch (grade) {
case "A":
console.log("优");
break;
case "B":
console.log("良");
break;
case "C":
console.log("及格");
break;
case "D":
console.log("不及格");
break;
default:
console.log("非法输入");
break;
}
心得: switch
对于处理多个离散值时效果更好,避免了大量的 else if
语句,让代码更加简洁。
二、循环语句
循环语句用于重复执行代码块,在某些情况下,可以大幅减少代码的重复。TypeScript 中常见的循环有 for
、while
和 do...while
,此外 TypeScript 还支持 for...of
、forEach
、every
和 some
循环。循环中还可以使用 break 和 continue 控制循环的行为。
1. for
循环
适用于已知迭代次数的情况:
typescript">for (let i = 0; i < 5; i++) {
console.log(i);
}
2. for...of
循环
for...of
用于遍历可迭代对象,如数组、字符串、集合等。
typescript">let someArray = [1, "string", false];
for (let entry of someArray) {
console.log(entry); // 输出: 1, "string", false
}
心得: for...of
是更现代化的循环方式,特别适用于遍历数组和其他可迭代对象。
3. forEach
循环
forEach
是数组方法,用于遍历数组的每个元素,并对其执行相同的操作。
typescript">let list = [4, 5, 6];
list.forEach((val, idx, array) => {
console.log(`元素: ${val}, 索引: ${idx}, 数组: ${array}`);
});
心得: forEach
使遍历数组更加简洁,但它无法中途退出循环,也没有返回值。
4. every
循环
every
方法用于检查数组中所有元素是否符合指定条件。如果所有元素都满足,返回 true
,否则返回 false
。
typescript">let list: number[] = [1, 2, 3, 4, 5];
let allPositive = list.every((val) => val > 0);
console.log(allPositive); // 输出: true
心得: every
可以用来进行条件检查,只要有一个不符合条件,循环立即停止。
5. some
循环
some
方法用于检查数组中是否至少有一个元素符合条件。如果有,返回 true
,否则返回 false
。
typescript">let numbers: number[] = [1, 2, 3, 4, 5];
let hasEven = numbers.some((val) => val % 2 === 0);
console.log(hasEven); // 输出: true
心得: some
提供了一种快速检查的方式,只要满足一个条件,循环就会结束。
6. break
语句
break
语句用于立即终止循环,不再继续执行后续的迭代。特别适合在找到所需值后跳出循环,减少不必要的计算。
typescript">var i: number = 1;
while (i <= 10) {
if (i % 5 == 0) {
console.log("在 1~10 之间第一个被 5 整除的数为 : " + i);
break; // 找到一个后退出循环
}
i++;
}
// 输出 5 然后程序执行结束
心得: break
在循环中很有用,可以在特定条件满足时立即跳出循环,减少不必要的运算。
7. continue
语句
continue
语句跳过当前循环中的剩余代码,直接开始下一次迭代。适合在某些特定情况下跳过不需要的操作。
typescript">var num: number = 0;
var count: number = 0;
for (num = 0; num <= 20; num++) {
if (num % 2 == 0) {
continue; // 跳过偶数,继续下一次循环
}
count++;
}
console.log("0 ~ 20 之间的奇数个数为: " + count); // 输出: 10
心得: continue
可以有效跳过不需要的循环内容,常用于条件判断中优化代码结构。
8. while
和 do...while
循环
while
循环适用于在条件为 true
时重复执行某段代码,而 do...while
则确保代码至少执行一次。
typescript">var num: number = 5;
var factorial: number = 1;
while (num >= 1) {
factorial *= num;
num--;
}
console.log(factorial);
心得: while
和 do...while
循环适合在循环次数不确定但需要满足特定条件时使用。对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句�重新执行条件判断语句。
三、函数
函数是执行特定任务的代码块,可以复用代码逻辑。TypeScript 提供了多种类型的函数定义方式,并且具有强大的类型支持。
- 基本函数
通过 function 关键字定义函数:
typescript
Copy code
function greet(): string {
return “Hello World”;
}
2. 带参数和返回值的函数
typescript
Copy code
function add(x: number, y: number): number {
return x + y;
}
console.log(add(1, 2)); // 输出: 3
3. 可选参数和默认参数
可选参数用 ? 标记。
typescript
Copy code
function buildName(firstName: string, lastName?: string): string {
return lastName ? ${firstName} ${lastName}
: firstName;
}
默认参数可以设置默认值。
typescript
Copy code
function calculate_discount(price: number, rate: number = 0.5) {
return price * rate;
}
4. 剩余参数
用 … 处理不确定数量的参数。
typescript
Copy code
function addNumbers(…nums: number[]): number {
return nums.reduce((sum, current) => sum + current, 0);
}
console.log(addNumbers(1, 2, 3, 4)); // 输出: 10
5. 匿名函数和箭头函数
匿名函数是没有名称的函数。
typescript
Copy code
let msg = function() {
return “Hello World”;
};
箭头函数简化了函数的定义。
typescript
Copy code
let foo = (x: number) => x + 10;
console.log(foo(100)); // 输出: 110
6. 函数重载
TypeScript 支持函数重载,不同的参数类型或数量可以调用同一个函数名。
typescript
Copy code
function disp(s1: string): void;
function disp(n1: number, s1: string): void;
function disp(x: any, y?: any): void {
console.log(x);
console.log(y);
}
心得: TypeScript 的函数提供了丰富的功能,可以通过类型定义确保函数的输入输出都是符合预期的。此外,剩余参数、可选参数和默认参数使得函数更加灵活,能够处理多种调用场景。尤其是在复杂项目中,函数的类型系统帮助避免了许多运行时错误。
四、总结
- 条件语句 在程序逻辑中必不可少,它们决定了不同情况下程序的执行路径。
if
适合简单判断,switch
更加适合多个离散条件的判断。 - 循环语句 提供了强大的代码复用能力,特别是对于重复操作或者遍历数据结构时非常实用。
for
循环是最常用的,而while
更适合不确定次数的循环。 - 函数 是构建程序的基础单元,它使代码更加模块化、易于维护和复用,结合 TypeScript 的类型检查功能,可以有效减少潜在的错误。
通过学习 TypeScript 的条件语句、循环语句和函数,我深刻体会到它在代码健壮性和开发效率方面的优势。相比于 JavaScript,TypeScript 通过静态类型检查帮助我们在开发过程中避免许多潜在的问题,代码的可读性和可维护性也得到了提升。