一尘不染

如何使用?:(条件)运算符在JavaScript中?

javascript

有人可以简单地向我解释什么是?:(有条件的“三元”)运算符,以及如何使用它?


阅读 314

收藏
2020-04-23

共1个答案

一尘不染

这是if-else语句的单行缩写。它称为条件运算符。1个

这是可以通过条件运算符缩短的代码示例:

var userType;
if (userIsYoungerThan18) {
  userType = "Minor";
} else {
  userType = "Adult";
}

if (userIsYoungerThan21) {
  serveDrink("Grape Juice");
} else {
  serveDrink("Wine");
}

可以这样缩短?:

var userType = userIsYoungerThan18 ? "Minor" : "Adult";

serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");

与所有表达式一样,条件运算符也可以用作具有副作用的独立语句,尽管在缩小之外这是不常见的:

userIsYoungerThan21 ? serveGrapeJuice() : serveWine();

它们甚至可以链接:

serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');

但是要小心,否则最终将得到如下复杂的代码:

var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;

1 通常称为“三元运算符”,但实际上它只是 一个 三元运算符[一个接受三个操作数的运算符]。不过,这是目前唯一的JavaScript。

2020-04-23