我可以使用`else if`和三元运算符吗?

时间:2017-11-05 20:19:59

标签: javascript ecmascript-6

我是否只能在三元运算符语法的语句中使用ifelse,还是可以以某种方式包含else if

示例:

if(a) {
   x
}
else if(y) {
   c
}
else {
   b
}

3 个答案:

答案 0 :(得分:7)

与带有可选if或可选else分支的else if不同,三元运算符只有两个分支。

如果您对第二个子句进行细分,则可以使用else if类似的功能:

a ? b : (c ? d : e)

这通常是一个坏主意,因为三元操作开始时可能会很混乱,并且这样的分层通常是对不可维护代码的快速列车。

写起来要好得多:

if (a) {
  b
}
else if (c) {
{
  d
}
else {
  e
}

这更详细,但非常清楚。

如果您过于激烈地使用三元,那么您最终会得到如下代码:

a()?c?d?e:f:g:h?i(j?k:l?m:n):o

任何人都可以猜到那里发生了什么。

答案 1 :(得分:2)

很有可能! 你可以用这个:

a ? b : b ? c : d

答案 2 :(得分:1)

你可以堆叠多个三元组:

var x = (y) ? 1 : ( (z) ? 2 : 0 );