ZetCode

JavaScript if/else 语句

最后修改于 2025 年 4 月 16 日

在本文中,我们将展示如何使用 JavaScript 中的 ifelse 关键字来控制程序流程。

if/else 关键字

if 语句在指定条件为真时执行一段代码块。else 语句在同一条件为假时执行一个代码块。这些是程序中进行决策的基本构建块。

JavaScript 在 if 之后的括号内评估条件。如果结果为真,则执行代码块。如果为假且存在 else,则执行该代码块。条件可以是任何返回布尔值的表达式。

else if 结构允许按顺序测试多个条件。 仅执行一个代码块 - 第一个其条件评估为真的代码块。这提供了一种处理多个可能情况的方法。

基本 if 语句

最简单的条件执行形式仅使用 if 关键字。

main.js
const age = 20;

if (age >= 18) {
    console.log("You are an adult");
}

此代码检查 age 变量是否为 18 或更大。如果为真,则向控制台记录一条消息。代码块仅在条件评估为真时执行。如果条件为假,则不会发生任何操作。

$ node main.js
You are an adult

带有 else 的 if

添加一个 else 子句提供了一个备用执行路径。

main.js
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 将条件链接在一起以实现更复杂的逻辑。

main.js
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 语句中,以实现复杂的条件。

main.js
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 (||),可以组合条件。

main.js
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 语句可以使用三元运算符简洁地编写。

main.js
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 条件评估任何值,而不仅仅是布尔值,使用真/假值规则。

main.js
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 - 语言参考

在本文中,我们已经演示了如何使用 if/else 语句来控制 JavaScript 中的程序流程。

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

查看 所有 JavaScript 教程。