I'm trying to use this and it doesn't appear to be working. I'm guessing it's just not an option, but want to confirm. Is this valid?
(if_it_is) ? thats_cool();
What you are trying to use is a Ternary Operator. You are missing the else part of it.
You could do something like:
(if_it_is) ? thats_cool() : function(){};
or
(if_it_is) ? thats_cool() : null;
Or, as others have suggested, you can avoid the ternary if you don't care about the else.
if_it_is && thats_cool();
In JavaScript, as well as most languages, these logical checks step from left to right. So it will first see if if_it_is is a 'trusy' value (true, 1, a string other than '', et cetera). If that doesn't pass then it doesn't do the rest of the statement. If it does pass then it will execute thats_cool as the next check in the logic.
Think of it as the part inside of an if statement. Without the if. So it's kind of a shorthand of
if (if_it_is && thats_cool()) { }
No, you can't. It's not an "inline if statement", it's the ternary operator, and that is, well… ternary.
(if_it_is) ? thats_cool() : null;
Since you do not seem to be interested in the return value of the operation, you could just write:
if (if_it_is) thats_cool();
though. That would also be better style than using a ternary.
thats_cool()returns a value that evaluates totrue. - Jonathan M:and some value following it. If you want, you could just create a function nameddo_nothing()that...well, does nothing. - Edwinif() {}. - Dykamif_it_isevaluates to a truthy statement. - Edwin