跳到主要内容

JavaScript 三元运算符

三元运算符在 JavaScript 中是一个常用的语法结构,具有以下几个关键特点:

  1. 基本结构:三元运算符使用条件表达式,根据条件的真假执行不同的代码。其基本语法为 condition ? expression1 : expression2。当条件为 true 时,执行 expression1;当条件为 false 时,执行 expression2

  2. 简洁的条件语句:三元运算符是 if..else 语句的简洁形式,常用于需要根据条件执行两种操作之一的场景。例如,可以用来判断成绩是否及格、检查年龄是否满足某个条件等。

  3. 嵌套使用:三元运算符可以嵌套使用,但建议谨慎使用嵌套,因为过度嵌套会使代码可读性降低。在复杂的条件判断中,使用传统的 if..else 语句可能更加清晰易懂。

使用三元运算符可以使代码更加简洁,但重要的是确保代码的可读性和可维护性。

三元运算符可在某些情况下替代 if..else 语句。在学习三元运算符之前,请务必查看 JavaScript if...else 教程

什么是三元运算符?

三元运算符评估一个条件,并基于该条件执行代码块。

其语法为:

condition ? expression1 : expression2;

三元运算符评估测试条件。

  • 如果条件为 true,则执行 expression1
  • 如果条件为 false,则执行 expression2

三元运算符有 三个 操作数,因此得名三元运算符。它也被称为条件运算符。

让我们编写一个程序,根据获得的分数来确定学生考试是通过还是失败。

示例:JavaScript 三元运算符

// 程序以检查通过或失败

let marks = prompt("Enter your marks :");

// 检查条件
let result = marks >= 40 ? "pass" : "fail";

console.log(`You ${result} the exam.`);

输出 1

Enter your marks: 78
You pass the exam.

假设用户输入 78。然后检查条件 marks >= 40,其计算结果为 true。因此第一个表达式 pass 被赋给 result 变量。

输出 2

Enter your marks: 35
You fail the exam.

假设用户输入 35。然后条件 marks >= 40 计算结果为 false。因此第二个表达式 fail 被赋给 result 变量。

使用三元运算符替代 if...else

在 JavaScript 中,三元运算符可用于替代某些类型的 if..else 语句。例如,

你可以将这段代码

// 检查年龄以确定是否有资格投票
let age = 15;
let result;

if (age >= 18) {
result = "You are eligible to vote.";
} else {
result = "You are not eligible to vote yet.";
}

console.log(result);

替换为

// 三元运算符检查投票资格
let age = 15;
let result =
age >= 18 ? "You are eligible to vote." : "You are not eligible to vote yet";
console.log(result);

这两个程序的输出将是相同的。

输出

You are not eligible to vote yet.

嵌套三元运算符

你也可以在另一个三元运算符中嵌套一个三元运算符作为表达式。例如,

// 程序检查数字是正数、负数还是零
let a = 3;
let result = a >= 0 ? (a == 0 ? "zero" : "positive") : "negative";
console.log(`The number is ${result}.`);

输出

The number is positive.

注意:尽可能避免使用嵌套三元运算符,因为它们会使你的代码难以阅读。