今天合并同事的代码的时候,看到接口传参里面有用到三元表达式,类似下面这种
param = {
uuId: this.xxx.xxx.id ? this.xxx.xxx.id : null,
morgId: this.xxx.xxx.morgid ? this.xxx.xxx.morgid : null,
...
...
...
}
整个篇幅很长,令人头大,当时就好奇为啥不直接 用 ”||“运算符,
param = {
uuId: this.xxx.xxx.id || null,
morgId: this.xxx.xxx.morgid || null,
...
...
...
}
一时间产生了 三元表达式 可以被 || 替代的想法,那为什么还会有三元表达式呢,难度因为出现的早?然后仔细想了一下,以下方式三元表达式(又叫三目,三元运算符)无法被 || 替代
a ? b : c // 选择结果与判断条件无关的时候
a ? a : b ? b : c // 三元表达式可以连写,当然为了便于理解 不建议超过三层
a ? b : c ? c : d // 等等
总上所述,|| 运算符可以替代 简单的(部分)三元表达式,而不能简单的混为一谈,视情况使用,当然代码能省还是得省,看着舒服~_~