你如何使用 ?:(条件)JavaScript中的运算符?
2022-08-29 23:07:00
简单来说,什么是(条件的“三元”)运算符,我如何使用它??:
简单来说,什么是(条件的“三元”)运算符,我如何使用它??:
这是 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目前唯一拥有的。
我想在给定的答案中添加一些。
如果你在“如果变量已设置,则显示变量,否则......”等情况下遇到(或想要使用)三元,则可以使其更短,而无需三元。
而不是:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
您可以使用:
var welcomeMessage = 'Hello ' + (username || 'guest');
这是 Javascript 等同于 PHP 的速记三元运算符 ?
甚至:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
它计算变量,如果变量为 false 或未设置,则继续执行下一个变量。