JavaScript if/else 语句
最后修改于 2025 年 4 月 16 日
在本文中,我们将展示如何使用 JavaScript 中的 if 和 else 关键字来控制程序流程。
if/else 关键字
if 语句在指定条件为真时执行一段代码块。else 语句在同一条件为假时执行一个代码块。这些是程序中进行决策的基本构建块。
JavaScript 在 if 之后的括号内评估条件。如果结果为真,则执行代码块。如果为假且存在 else,则执行该代码块。条件可以是任何返回布尔值的表达式。
else if 结构允许按顺序测试多个条件。 仅执行一个代码块 - 第一个其条件评估为真的代码块。这提供了一种处理多个可能情况的方法。
基本 if 语句
最简单的条件执行形式仅使用 if 关键字。
const age = 20;
if (age >= 18) {
console.log("You are an adult");
}
此代码检查 age 变量是否为 18 或更大。如果为真,则向控制台记录一条消息。代码块仅在条件评估为真时执行。如果条件为假,则不会发生任何操作。
$ node main.js You are an adult
带有 else 的 if
添加一个 else 子句提供了一个备用执行路径。
const temperature = 25;
if (temperature > 30) {
console.log("It's hot outside");
} else {
console.log("It's not too hot");
}
在这里,将始终打印两条消息中的一条。如果温度超过 30,则显示第一条消息。否则,将显示第二条消息。当 if 条件为假时,else 代码块执行。
$ node main.js It's not too hot
带有 else if 的多个条件
使用 else if 将条件链接在一起以实现更复杂的逻辑。
const score = 85;
if (score >= 90) {
console.log("Grade: A");
} else if (score >= 80) {
console.log("Grade: B");
} else if (score >= 70) {
console.log("Grade: C");
} else {
console.log("Grade: D or below");
}
此示例演示了分级系统。条件按顺序检查,直到其中一个匹配。 仅执行第一个匹配的代码块。最终的 else 捕获先前条件未涵盖的所有剩余情况。
$ node main.js Grade: B
嵌套 if 语句
if 语句可以嵌套在其他 if 语句中,以实现复杂的条件。
const age = 25;
const hasLicense = true;
if (age >= 18) {
if (hasLicense) {
console.log("You can drive");
} else {
console.log("You need a license");
}
} else {
console.log("You're too young to drive");
}
外部 if 检查年龄,而内部 if 检查许可证状态。此结构允许以逻辑方式组合多个条件。每个条件都必须为真,才能执行最内层的代码块。
$ node main.js You can drive
条件中的逻辑运算符
逻辑运算符,如 AND (&&) 和 OR (||),可以组合条件。
const hour = 14;
const isWeekend = false;
if (hour >= 9 && hour <= 17 && !isWeekend) {
console.log("Office is open");
} else {
console.log("Office is closed");
}
此示例检查当前时间是否在 9-5 之间,并且不是周末。&& 运算符要求所有条件都为真。! 运算符否定布尔值。复杂条件变得更具可读性。
$ node main.js Office is open
三元运算符替代方案
简单的 if/else 语句可以使用三元运算符简洁地编写。
const isMember = true;
const discount = isMember ? 0.1 : 0;
console.log(`Your discount is ${discount * 100}%`);
三元运算符 ? : 提供了简单条件语句的简写形式。如果 isMember 为真,则折扣为 0.1 (10%),否则为 0。这相当于完整的 if/else 语句,但对于简单情况更紧凑。
$ node main.js Your discount is 10%
真值和假值
JavaScript 条件评估任何值,而不仅仅是布尔值,使用真/假值规则。
const name = "";
const items = [1, 2, 3];
if (name) {
console.log(`Hello ${name}`);
} else {
console.log("Please enter your name");
}
if (items.length) {
console.log(`You have ${items.length} items`);
}
空字符串为假值,而非空字符串为真值。长度大于 0 的数组为真值。其他假值包括 0、null、undefined、NaN 和 false。所有其他值都为真值。此行为是 JavaScript 特有的。
$ node main.js Please enter your name You have 3 items
来源
在本文中,我们已经演示了如何使用 if/else 语句来控制 JavaScript 中的程序流程。