TypeScript 条件语句完全指南
面向编程小白的大白话解释,涵盖所有核心知识点和实用技巧
1. 基础 if 语句
最简单的条件判断,满足条件就执行代码
大白话解释: 就像生活中说”如果今天下雨,我就带伞”一样。if语句就是检查某个条件是否成立,成立就执行后面的代码块。
基本语法
if (条件) {
// 条件为真时执行的代码
}
示例:
let isRaining: boolean = true;
if (isRaining) {
console.log("记得带伞!");
}
输出:记得带伞!
💡 小贴士: 条件表达式的结果必须是布尔值(true或false)。TypeScript会帮你检查类型是否正确。
2. if…else 语句
二选一的条件判断,满足条件执行A,不满足执行B
大白话解释: 就像”如果今天下雨,我带伞;否则,我就戴太阳镜”。if…else提供了两种情况的处理方案。
基本语法
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
示例:
let age: number = 17;
if (age >= 18) {
console.log("可以观看此电影");
} else {
console.log("年龄未满18岁,禁止观看");
}
输出:年龄未满18岁,禁止观看
💡 小贴士: else后面不需要写条件,它处理所有if条件不满足的情况。
3. else if 语句
处理多个条件的判断,类似于多个选项的选择题
大白话解释: 就像考试评分:如果分数≥90是A,80-89是B,70-79是C,否则不及格。可以处理多个条件分支。
基本语法
if (条件1) {
// 条件1为真时执行
} else if (条件2) {
// 条件2为真时执行
} else if (条件3) {
// 条件3为真时执行
} else {
// 以上都不满足时执行
}
示例:
let score: number = 85;
if (score >= 90) {
console.log("优秀!评级A");
} else if (score >= 80) {
console.log("良好!评级B");
} else if (score >= 70) {
console.log("中等!评级C");
} else if (score >= 60) {
console.log("及格!评级D");
} else {
console.log("不及格!需要努力了");
}
输出:良好!评级B
⚠️ 注意: else if语句会按顺序检查条件,一旦某个条件满足,就会执行对应的代码块并跳过其余检查。
4. 三元运算符
简洁的条件表达式,相当于if…else的简写形式
大白话解释: 就像选择题的答案:”正确答案是A还是B?” 三元运算符让你可以在一行代码中完成简单的条件判断。
基本语法
条件 ? 表达式1 : 表达式2
示例:
let isMember: boolean = true;
let discount = isMember ? 0.2 : 0.1; // 会员8折,非会员9折
console.log(`折扣率:${discount * 100}%`);
输出:折扣率:20%
💡 小贴士: 三元运算符非常适合简单的条件赋值,但复杂的逻辑还是用if语句更清晰。
5. switch 语句
多分支选择语句,适合基于单一变量的多种情况判断
大白话解释: 就像选择题有A、B、C、D四个选项,每个选项对应不同的处理方式。switch语句适合这种”一个变量,多种取值”的情况。
基本语法
switch (表达式) {
case 值1:
// 代码块1
break;
case 值2:
// 代码块2
break;
default:
// 默认代码块
}
示例:
let day: number = 3;
let dayName: string;
switch (day) {
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
case 4:
dayName = "星期四";
break;
case 5:
dayName = "星期五";
break;
default:
dayName = "周末";
}
console.log(`今天是${dayName}`);
输出:今天是星期三
⚠️ 重要: 每个case后面要加break语句,否则会继续执行下一个case!default是可选的,处理未匹配的情况。
6. 逻辑运算符组合条件
使用AND(&&)、OR(||)、NOT(!)组合多个条件
大白话解释: 就像同时满足多个条件(并且),或者满足一个条件即可(或者),或者取反条件(不是)。
运算符说明
&&
(与):两个条件都为真时结果才为真||
(或):至少一个条件为真时结果就为真!
(非):对条件结果取反
示例:
let age: number = 20;
let hasTicket: boolean = true;
// 年龄≥18并且有票
if (age >= 18 && hasTicket) {
console.log("可以进入电影院");
}
// 年龄<6或者≥65
if (age < 6 || age >= 65) {
console.log("可以享受优惠票价");
}
// 不是周末
let isWeekend: boolean = false;
if (!isWeekend) {
console.log("工作日人少,观影体验更佳");
}
💡 小贴士: 组合条件时可以使用括号来明确优先级,例如:(条件1 || 条件2) && 条件3
条件语句使用场景对比
语句类型 | 适用场景 | 优点 | 注意事项 |
---|---|---|---|
if 语句 | 单一条件判断 | 简单直接,易于理解 | 只能处理一种情况 |
if…else | 二选一的情况 | 处理两种互斥情况 | 不适用于多条件 |
else if | 多个互斥条件判断 | 可以处理多种情况 | 条件顺序很重要 |
三元运算符 | 简单的二选一赋值 | 简洁,一行代码完成 | 复杂逻辑可读性差 |
switch | 基于单一变量的多种值判断 | 结构清晰,易于扩展 | 必须加break,只能判断相等 |
💡 选择建议: 当条件数量少时用if/else,条件多且基于同一变量时用switch,简单赋值用三元运算符。
7. 最佳实践与常见错误
最佳实践:
- 保持条件简单:复杂的条件可以拆分成多个变量或函数
- 使用括号明确优先级:如
(a || b) && c
- switch语句中总是包含default分支
- 避免深层嵌套:嵌套超过3层应考虑重构
- 使用枚举配合switch语句提高可读性
常见错误:
- 在switch中忘记写break导致”贯穿”执行
- 误用赋值运算符(=)而不是比较运算符(==或===)
- 在条件中比较不同类型的值(TypeScript会警告)
- 过度使用三元运算符导致代码难以阅读
- 在条件中写函数调用产生副作用
错误示例:
// 错误:使用赋值运算符而不是比较
let num = 5;
if (num = 10) { // 这里应该是 num === 10
console.log("数字是10");
}
// 错误:switch中忘记写break
switch (num) {
case 5:
console.log("是5");
case 10:
console.log("是10"); // 当num=5时,会输出"是5"和"是10"
break;
}