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

lol*_*gic 5 javascript ecmascript-6

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

例:

if(a) {
   x
}
else if(y) {
   c
}
else {
   b
}
Run Code Online (Sandbox Code Playgroud)

tad*_*man 14

if具有可选else或可选else if分支的不同,三元运算符具有两个且仅两个分支.

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

a ? b : (c ? d : e)
Run Code Online (Sandbox Code Playgroud)

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

写得好得多:

if (a) {
  b
}
else if (c) {
{
  d
}
else {
  e
}
Run Code Online (Sandbox Code Playgroud)

这更详细,但非常清楚.

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

a()?c?d?e:f:g:h?i(j?k:l?m:n):o
Run Code Online (Sandbox Code Playgroud)

哪里有人猜测那里发生了什么.

  • @NinaScholz他们有必要更清楚地说明结构.如果没有它们,它就变成了一堆神秘的符号. (2认同)
  • 基本上它是有效的,因为 `if(a){b}elseif(c){d}else{e}` 等于 `if(a){b}else{ if(c){d}else{e} }` (2认同)
  • @乔纳斯W。恰恰。`else if` 只是 `else { if { ... }}` 的简写语法 (2认同)

小智 9

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

a ? b : b ? c : d
Run Code Online (Sandbox Code Playgroud)