【问题标题】:Who needs the conditional (ternary) operator? [duplicate]谁需要条件(三元)运算符? [复制]
【发布时间】:2021-04-02 09:20:00
【问题描述】:

以下两个表达式在 JavaScript 中有区别吗?

Conditional (ternary) operator:

x > y ? a : b

布尔表达式:

x > y && a || b

【问题讨论】:

  • 是的。请检查零 a
  • 或任何 false-y 值。

标签: javascript


【解决方案1】:

让我们写一个所有可能(合理)场景的简单对比表:

console.log("x > y ? a : b")
console.log( 
1 ? 1 : 0,
0 ? 1 : 0,
1 ? 0 : 1,
0 ? 0 : 1 
)

console.log("x > y && a || b")
console.log( 
1 && 1 || 0,
0 && 1 || 0, 
1 && 0 || 1,
0 && 0 || 1 
)

不一样。如您所见,1 ? 0 : 11 && 0 || 1不同。逻辑根本不一样,很可能不言自明。

true ? a : b 将选择a,因为根据定义,如果是true,则为a,否则为b

true && a || b 非常不同 - 如果true 则评估a || b,否则false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2013-02-06
    • 2012-02-22
    • 2013-04-26
    • 2013-06-06
    • 2023-04-11
    相关资源
    最近更新 更多