js一行If ... else ... else if语句

2022-06-16 18:41:05 浏览数 (1)

我知道你可以通过做var variable = (condition) ? (true block) : (else block)来设置一行if / else语句的var variable = (condition) ? (true block) : (else block) var variable = (condition) ? (true block) : (else block) ,但我想知道是否有办法在其中放入else if语句。 任何建议,将不胜感激,谢谢大家!

当然,你可以做嵌套的三元操作符,但它们很难阅读。

代码语言:javascript复制
var variable = (condition) ? (true block) : ((condition2) ? (true block2) : (else block2))

TL;博士

是的,你可以...如果一个然后一个,否则如果B然后如果C然后C(B),否则B,否则空

代码语言:javascript复制
a ? a : (b ? (c ? c(b) : b) : null)

a ? a : b ? c ? c(b) : b : null

更长的版本

三元运算符?:用作内联if-else是正确的关联 。 总之这意味着最右边的? 获得第一喂,它需要只有一个操作数最接近的左侧两个 ,有: ,在右边。

实际上,请考虑以下声明(与上述相同):

a ? a : b ? c ? c(b) : b : null

最右边的? 首先得到喂养,所以找到它及其周围的三个参数,并连续向左扩展到另一个?

代码语言:javascript复制
 `  a ? a : b ? c ? c(b) : b : null  ^

<---- RTL

^ <- 3.|1-?-2-

0 人点赞