问题

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

  最佳答案

这是 if-else 语句的一行速记。

以下是可以用条件运算符缩短的代码示例:

 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");
 

与所有表达式一样,条件运算符也可以用作具有side-forms的独立语句,尽管这是除了minification之外的异常:

 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.

  相同标签的其他问题

javascriptternary-operator