【问题标题】:Javascript ternary operator: what to put as the false option when none is required?Javascript三元运算符:不需要时将什么作为错误选项?
【发布时间】:2020-08-13 17:18:32
【问题描述】:

使用 if/else 块,如果 'if' 不正确,则可以在不需要执行任何操作时省略 else。

例如:

If (A) {
B;
}
// works perfectly well;

但是,当使用三元运算符时,空的 'else' 选项会引发错误。

例如

(A) ? B :  // throws error

(A) ? B // throws error

将 null 作为 else 选项会停止错误并且似乎可以正常工作,但它安全吗?或者,当不需要“else”部分时,使用三元语句的正确方法是什么?

例如

(A) ? B : null ; // no error but is it safe or is there a better alternative?

【问题讨论】:

  • 如果没有else,那么只需使用普通的旧if,而不是具有if的构造 else...
  • 三元条件运算符不是 if/else 结构的直接替代品。它们是两种不同的东西。三元条件运算符旨在根据条件评估值。如果您没有观察运算符的结果,那么 (1) 该结果是否为 null 并不重要,并且 (2) 您可能使用了错误的结构。如果您想根据条件执行操作,if 正是为此目的而设计的。
  • 这能回答你的问题吗? Javascript Ternary operator with empty else
  • @jvilhena - 它应该这样做,但坦率地说,不,因为答案很复杂并且忽略了下面 ssb 给出的简单答案(我忽略了它作为一个更好的选择)。另外,我搜索了很长一段时间,那个没有特色。我想这个问题是如此接近,以至于我的问题可能会被删除,但我希望不是因为简单的答案非常令人愉快,但已经让我过了好多年!谢谢。
  • @David 这很有道理。谢谢。

标签: javascript default-value conditional-operator


【解决方案1】:

如果您愿意,也可以在一行中使用if

if (a) b;

【讨论】:

  • 谢谢,这比必须指定 null 更令人愉快。
  • 让我想起imperialviolet.org/2014/02/22/applebug.html,我个人倾向于强制使用括号。
  • 我不一定认为这是最好的风格,但它至少是值得商榷和普遍使用的。
【解决方案2】:

您可以改用logical AND &&

a && b;

但如果您不需要表达式的结果,请使用标准 if statement

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2015-10-07
    • 2017-05-15
    • 2017-05-31
    • 2016-05-03
    • 1970-01-01
    相关资源
    最近更新 更多