有人可以简单地向我解释什么是?:(有条件的“三元”)运算符,以及如何使用它?
?:
这是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。