JavaScript 中有一个条件运算符 ? 可以帮助我们简化 if 语句。

$$tip

条件运算符 ? 也被称为三元运算符,因为它是仅此一个拥有三个运算元的运算符。

$$

语法:

let result = condition ? expression1 : expression2
  • condition:布尔值的判断条件,如果为 true 则执行表达式 expression1 并返回值, false 则执行表达式 expression2 并返回值。
  • result:接收表达式返回的值。

买冰淇淋的例子则可以简化如下。

$$edit$$
$$jsdemo$$
let money = 10
money >= 20 ? alert("买个冰淇凌") : alert("买不起,回家")

由于 alert 函数没有返回值,以下再看一个有返回值的例子。

首先是用 if ... else 实现的例子:

$$edit$$
$$jsdemo$$
let age = prompt("你多少岁了?")

let result
if (age >= 18) {
    result = "允许访问"
} else {
    result = "请你关掉网站"
}

alert(result)

使用 ? 运算符则可以简化如下:

$$edit$$
$$jsdemo$$
let age = prompt("你多少岁了?")

let result = age >= 18 ? "允许访问" : "请你关掉网站"

alert(result)

不推荐的写法,把 ageresult 也省略掉:

$$jsdemo$$
$$edit$$
alert(prompt("你多少岁了?") >= 18 ? "允许访问" : "请你关掉网站")

虽然行数变少了,但是会造成代码可读性变差。


练习

  1. 使用条件运算符改写以下语句。
$$jsdemo$$
$$edit$$
let n = Number(prompt("请输入一个偶数"))
if (n % 2 === 0) {
    alert("对了对了")
} else {
    alert("错了错了")
}

$$answer

$$jsdemo$$
$$edit$$
let n = Number(prompt("请输入一个偶数"))
n % 2 === 0 ? alert("对了对了") : alert("错了错了")

$$