Javascript 我可以将'else if'与三元运算符一起使用吗?

Javascript 我可以将'else if'与三元运算符一起使用吗?,javascript,ecmascript-6,Javascript,Ecmascript 6,我只能在三元运算符语法的语句中使用if和else,还是可以以某种方式包含else if 例如: if(a) { x } else if(y) { c } else { b } 与带有可选else或可选else if分支的if不同,三元运算符有两个且只有两个分支 它实际上是名字的一部分。其中a+b中的+是一个二元运算符,即它有两个?有三个,就像在一个房间里?b:c,因此被称为三元。从技术上讲,可能还有其他三元运算符?但在大多数语言中,它们并不存在,所以人们普遍认为三元名称的意思

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

例如:

if(a) {
   x
}
else if(y) {
   c
}
else {
   b
}
与带有可选else或可选else if分支的if不同,三元运算符有两个且只有两个分支

它实际上是名字的一部分。其中a+b中的+是一个二元运算符,即它有两个?有三个,就像在一个房间里?b:c,因此被称为三元。从技术上讲,可能还有其他三元运算符?但在大多数语言中,它们并不存在,所以人们普遍认为三元名称的意思是?接线员

如果您将第二条分支,则可以使用其他类似功能:

a ? b : (c ? d : e)
这通常是一个坏主意,因为三元操作一开始可能很混乱,像这样的分层通常是无法维护代码的快车

最好写下:

if (a) {
  b
}
else if (c) {
{
  d
}
else {
  e
}
这更为冗长,但非常清楚

如果过度使用ternaries,最终会产生如下代码:

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

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

您可以堆叠多个三元组:

var x = (y) ? 1 : ( (z) ? 2 : 0 );
这是很有可能的! 你可以用这个:

a ? b : b ? c : d

请同时添加代码片段。请展示您试图完成的示例。看到并可能复制一个非常糟糕的想法,无论如何,这里不需要代码片段或MCVE。这是一个关于语法的简单事实问题。括号不是必需的。@NinaScholz它们是更清楚地说明结构所必需的。如果没有它们,它就会变成一团神秘的符号。基本上它是有效的,因为ifa{b}elseifc{d}else{e}等于ifa{b}else{ifc{d}else{e}@JonasW。精确地else-if只是else{if{…}的简写语法