typescript控制语句

news/2024/9/21 21:37:49 标签: typescript, ubuntu, javascript

TypeScript 条件语句、循环语句与函数学习心得

一、条件语句

条件语句是控制程序执行路径的核心工具,它让程序根据不同的条件执行不同的代码。TypeScript 中常用的条件语句包括 ifif...elseif...else if...elseswitch

1. if 语句

if 语句用于在条件为 true 时执行一段代码。例如:

typescript">var num: number = 5;
if (num > 0) { 
    console.log("数字是正数");
}

心得: if 语句简单且直观,适合单一条件判断。如果有多个条件,可以搭配 else if 使用,但一旦条件复杂,switch 语句会更具可读性。

2. if...else 语句

if...else 语句用于在条件为 truefalse 时执行不同的代码块。

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 中常见的循环有 forwhiledo...while,此外 TypeScript 还支持 for...offorEacheverysome 循环。循环中还可以使用 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. whiledo...while 循环

while 循环适用于在条件为 true 时重复执行某段代码,而 do...while 则确保代码至少执行一次。

typescript">var num: number = 5;
var factorial: number = 1;
while (num >= 1) {
    factorial *= num;
    num--;
}
console.log(factorial);

心得: whiledo...while 循环适合在循环次数不确定但需要满足特定条件时使用。对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do…while 循环,continue 语句�重新执行条件判断语句。

三、函数

函数是执行特定任务的代码块,可以复用代码逻辑。TypeScript 提供了多种类型的函数定义方式,并且具有强大的类型支持。

  1. 基本函数
    通过 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 通过静态类型检查帮助我们在开发过程中避免许多潜在的问题,代码的可读性和可维护性也得到了提升。


http://www.niftyadmin.cn/n/5669486.html

相关文章

关于一些Spring的配置的作用

文章目录 spring.profiles.activejmx.default-domainmain.allow-bean-definition-overridingmain.allow-circular-referencescloud.nacoscloud.nacos.configcloud.nacos.shared-configsmvc.pathmatch.matching-strategy spring:profiles:active: ${config.profile}# include…

使用Apify加载Twitter消息以进行微调的完整指南

# 使用Apify加载Twitter消息以进行微调的完整指南## 引言在自然语言处理领域&#xff0c;微调模型以适应特定任务是提升模型性能的常见方法。本文将介绍如何使用Apify从Twitter导出聊天信息&#xff0c;以便进一步进行微调。## 主要内容### 使用Apify导出推文首先&#xff0c;我…

记录一次ubuntu /mysql/redis/nginx等 系统安装

没想到还会做一次系统安装配置类的工作&#xff0c;没办法&#xff0c;碰到问题了&#xff0c;总得解决。 安装 &网络配置 从网上下载了ubuntu 18.04.6的安装包&#xff0c;用UltraISO做安装盘&#xff0c;到服务器上修改了下启动顺序&#xff0c;ubuntu的安装非常简单&a…

cmake--get_filename_component

作用 按照指定的方式获取文件或者目录的信息。 使用 get_filename_component(<variable> <filename> <component>) variable: 用于保存提取的信息。 filename: 指定路径的文件或者目录。 component: 链接1 component DIRECTORY: 提取文件或者目录的父…

查找算法 01分块查找

自己设计一个分块查找的例子&#xff0c;不少于15个数据元素&#xff0c;并建立分块查找的索引 基于上述例子&#xff0c;计算查找成功的ASL、查找失败的ASL 拓展&#xff1a; ‌‌分块查找的平均查找长度&#xff08;‌ASL&#xff09;的计算公式如下‌&#xff1a;‌ ‌顺序…

浅谈C++之运算符

一、基本介绍 运算符是描述对数据进行的运算(操作)、体现数据之间运算关系的符号&#xff0c;运算符也叫操作符。 二、运算符分类 算术运算符&#xff1a;用于执行基本的数学运算。 &#xff08;加&#xff09;-&#xff08;减&#xff09;*&#xff08;乘&#xff09;/&#x…

办公软件wps常用的快捷键有哪些

WPS办公软件常用的快捷键非常丰富&#xff0c;这些快捷键可以大大提高用户的工作效率。以下是一些常用的WPS快捷键及其功能&#xff1a; 通用快捷键 新建文档&#xff1a;Ctrl N打开文档&#xff1a;Ctrl O保存文档&#xff1a;Ctrl S另存为&#xff1a;F12 或 Ctrl Shif…

2024华为杯E题:高速公路应急车道紧急启用模型

高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0c;如匝道出入口或桥梁入口等。当然&#xff0c;有些高速公…