我正在尝试使用此功能,但似乎无法正常工作。我猜它不是一个选项,但想确认一下。这有效吗?
(if_it_is) ? thats_cool();
答案 0 :(得分:31)
您可以在那里使用&&
:
if_it_is && thats_cool();
它基本上等于:
if (your_expression){
thats_cool();
}
答案 1 :(得分:4)
不,它无效。
条件运算符采用x ? y : z
形式。第三个操作数与else
中的if
不一样,它总是必须存在。
答案 2 :(得分:2)
您尝试使用的是Ternary Operator。你错过了其他部分。
您可以执行以下操作:
(if_it_is) ? thats_cool() : function(){};
或
(if_it_is) ? thats_cool() : null;
或者,正如其他人所建议的那样,如果你不关心别人,你就可以避免三元。
if_it_is && thats_cool();
在JavaScript和大多数语言中,这些逻辑检查从左到右逐步进行。因此,它首先会看到if_it_is
是'trusy' value(true
,1
,是否为''
以外的字符串,等等。如果没有通过那么它不会执行声明的其余部分。如果它确实通过,那么它将执行thats_cool
作为逻辑中的下一个检查。
将其视为if语句中的一部分。没有if。
这是一种简写if (if_it_is && thats_cool()) { }
答案 3 :(得分:1)
使用三元运算符无法实现这一点,但可以使用&&
的短路特性来做你想做的事。
(if_it_is) && thats_cool();
答案 4 :(得分:1)
(if_it_is) ? thats_cool() : null;
由于您似乎对操作的返回值不感兴趣,您可以写:
if (if_it_is) thats_cool();
虽然。这也比使用三元更好。
答案 5 :(得分:0)
?:
是一个三元运算符,必须拥有它的所有三个操作数。
答案 6 :(得分:0)
你错过了第三个组件。应该是这样的:
(if_it_is) ? thats_cool() : not_too_cool();
整个意义是:
condition ? do_something_if_condition_is_true : do_something_if_condition_is_false;