【发布时间】:2011-05-06 00:48:46
【问题描述】:
如果您一开始就讨厌三元条件运算符,则无需回复;)
我通常看到它与赋值表达式一起使用:
var foo = (some_condition) ? then_code : else_code;
但是,我想用它来替换简单的代码,例如:
if(some_condition) {
do_something_simple;
} else {
do_something_else;
}
改为:
(some_condition) ? do_something_simple : do_something_else;
我可能会在 JavaScript 中执行此操作。在上面它返回 undefined 所以它不需要赋值。我喜欢节省的空间,但想知道人们对这种类型的使用有何看法,因为我通常只看到三元与分配一起使用。
编辑:我已经看到暗示“隐藏意图”的答案。虽然经典地用在表达式中,但是这如何隐藏意图而不是在表达式中使用呢?尤其是在一种动态语言中,人们可能会看到到处都在使用三元运算符?
【问题讨论】:
-
重复问题。请始终首先查看以前提出和回答的问题。这是链接,看看是否有帮助:stackoverflow.com/questions/3622244/…
-
提示:请注意,这种特殊的三元运算符通常称为条件运算符。 “三元”运算符只是具有 3 个操作数的运算符,因此称为“三元”。三元运算符并不多,但在具有多个运算符的语言中,条件运算符只是其中之一。
-
@Mazhar:这个问题是关于以正常的、被接受的方式使用
?:作为表达式级别的选择。这是关于滥用?:进行积极的副作用,以取代if-else。我个人非常讨厌这种做法。 -
>重复问题。我不相信。我的特别是与将其用作语句而不是表达式有关。链接的问题是更一般的IMO。 bobince 当然也是这么说的。
标签: javascript coding-style ternary-operator