【发布时间】:2014-11-04 15:35:12
【问题描述】:
是否有 if / else if / else 语句的简写?例如,我知道有一个 if / else 语句:
var n = $("#example div").length;
$("body").css("background", (n < 2) ? "green" : "orange");
但是我该如何用上面的简写语法写出以下内容呢?
var n = $("#example div").length;
if (n < 2) {
$("body").css("background", "green");
}
else if (n > 2) {
$("body").css("background", "blue");
}
else {
$("body").css("background", "orange");
}
【问题讨论】:
-
cond1 ? expr1 : (cond2 ? expr2 : expr3);(在这种情况下不需要括号)。 -
您在第一种情况下使用三元是合适的。但我不会在第二种情况下(有三种或更多可能性)使用这样的陈述,因为以后阅读起来要困难得多。
-
@Zeta 这正是我会避免的那种三元。嵌套三元组通常被认为是代码异味/不好的做法。
-
同意,嵌套的三元组更难阅读。您可以考虑一件事(使代码更干燥,以后可能更容易更改):有一个
colour变量,使用 if/elseif/else 设置colour变量,然后只调用一次$("body").css(...)。跨度> -
不管怎样,它都会被调用一次,但冗余较少。
标签: javascript jquery if-statement shorthand shorthand-if