Appearance
7. 流程控制:条件语句(做选择)
条件语句是 JavaScript 中用于根据不同条件执行不同代码块的语句。本章节将带你学习 JavaScript 的条件语句,包括 if 语句、if...else 语句、if...else if 语句、switch 语句和三元运算符。
7.1 if 语句:单条件判断
if 语句用于在条件为真时执行代码块。
基本语法
javascript
if (条件) {
// 条件为真时执行的代码
}示例
javascript
let age = 18;
if (age >= 18) {
console.log('你是成年人');
}
let score = 90;
if (score >= 60) {
console.log('考试及格');
}注意事项
- 条件表达式必须放在括号中
- 代码块必须用大括号包围,即使只有一行代码
- 条件表达式会被转换为布尔值
7.2 if...else 语句:二选一
if...else 语句用于在条件为真时执行一个代码块,在条件为假时执行另一个代码块。
基本语法
javascript
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}示例
javascript
let age = 16;
if (age >= 18) {
console.log('你是成年人');
} else {
console.log('你是未成年人');
}
let score = 50;
if (score >= 60) {
console.log('考试及格');
} else {
console.log('考试不及格');
}7.3 if...else if 语句:多条件判断
if...else if 语句用于在多个条件中选择一个执行。
基本语法
javascript
if (条件1) {
// 条件1为真时执行的代码
} else if (条件2) {
// 条件2为真时执行的代码
} else if (条件3) {
// 条件3为真时执行的代码
} else {
// 所有条件都为假时执行的代码
}示例
javascript
let score = 85;
if (score >= 90) {
console.log('优秀');
} else if (score >= 80) {
console.log('良好');
} else if (score >= 60) {
console.log('及格');
} else {
console.log('不及格');
}
let day = 'Monday';
if (day === 'Monday') {
console.log('今天是星期一');
} else if (day === 'Tuesday') {
console.log('今天是星期二');
} else if (day === 'Wednesday') {
console.log('今天是星期三');
} else {
console.log('今天是其他日子');
}7.4 switch 语句:固定值匹配
switch 语句用于根据变量的不同值执行不同的代码块。
基本语法
javascript
switch (表达式) {
case 值1:
// 表达式等于值1时执行的代码
break;
case 值2:
// 表达式等于值2时执行的代码
break;
case 值3:
// 表达式等于值3时执行的代码
break;
default:
// 表达式不等于任何case值时执行的代码
}示例
javascript
let day = 'Monday';
switch (day) {
case 'Monday':
console.log('今天是星期一');
break;
case 'Tuesday':
console.log('今天是星期二');
break;
case 'Wednesday':
console.log('今天是星期三');
break;
case 'Thursday':
console.log('今天是星期四');
break;
case 'Friday':
console.log('今天是星期五');
break;
case 'Saturday':
case 'Sunday':
console.log('今天是周末');
break;
default:
console.log('无效的日期');
}
let grade = '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('无效的等级');
}注意事项
switch语句使用严格相等(===)进行比较- 每个
case后面必须有break语句,否则会继续执行下一个case(称为 "fallthrough") default分支是可选的,用于处理所有未匹配的情况
7.5 三元运算符:简洁版条件判断
三元运算符是一种简洁的条件判断语法,用于根据条件返回不同的值。
基本语法
javascript
条件 ? 值1 : 值2如果条件为真,返回值1;否则返回值2。
示例
javascript
let age = 18;
let message = age >= 18 ? '你是成年人' : '你是未成年人';
console.log(message); // '你是成年人'
let score = 85;
let grade = score >= 90 ? 'A' : score >= 80 ? 'B' : score >= 60 ? 'C' : 'D';
console.log(grade); // 'B'
// 作为函数返回值
function getMessage(age) {
return age >= 18 ? '成年人' : '未成年人';
}
console.log(getMessage(20)); // '成年人'
console.log(getMessage(15)); // '未成年人'注意事项
- 三元运算符适合简单的条件判断,复杂的条件判断建议使用 if...else 语句
- 可以嵌套使用三元运算符,但嵌套层级不宜过深,否则会降低代码可读性
7.6 实战:判断成绩等级 / 年龄是否成年
实战1:判断成绩等级
javascript
function getGrade(score) {
if (score >= 90) {
return '优秀';
} else if (score >= 80) {
return '良好';
} else if (score >= 60) {
return '及格';
} else {
return '不及格';
}
}
console.log(getGrade(95)); // '优秀'
console.log(getGrade(85)); // '良好'
console.log(getGrade(65)); // '及格'
console.log(getGrade(45)); // '不及格'实战2:判断年龄是否成年
javascript
function checkAdult(age) {
if (age >= 18) {
return '你是成年人,可以投票和驾驶。';
} else if (age >= 16) {
return '你是青少年,可以打工。';
} else {
return '你是儿童,需要成年人监护。';
}
}
console.log(checkAdult(20)); // '你是成年人,可以投票和驾驶。'
console.log(checkAdult(17)); // '你是青少年,可以打工。'
console.log(checkAdult(10)); // '你是儿童,需要成年人监护。'小结
通过本章节的学习,你已经掌握了:
if语句:单条件判断if...else语句:二选一if...else if语句:多条件判断switch语句:固定值匹配- 三元运算符:简洁版条件判断
- 如何使用条件语句解决实际问题
在后续的章节中,我们将学习 JavaScript 的循环语句和函数等核心语法。
