【发布时间】: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