Can I omit the else in an inline javascript if statement?

后端 未结 7 1367
鱼传尺愫
鱼传尺愫 2021-02-07 02:50

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         


        
相关标签:
7条回答
  • 2021-02-07 03:05

    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()) { }
    
    0 讨论(0)
  • 2021-02-07 03:06

    You miss the third component. Should be something like that:

    (if_it_is) ? thats_cool() : not_too_cool();
    

    The whole sense is:

    condition ? do_something_if_condition_is_true : do_something_if_condition_is_false;
    
    0 讨论(0)
  • 2021-02-07 03:10

    You can't accomplish that using the ternary operator, but you can use the short-circuit nature of && to do what you want.

    (if_it_is) && thats_cool();
    
    0 讨论(0)
  • 2021-02-07 03:15

    You can use && there:

    if_it_is && thats_cool();
    

    It is basically equal to:

    if (your_expression){
       thats_cool();
    }
    
    0 讨论(0)
  • 2021-02-07 03:19

    No, you can't. ?: is a ternary operator and MUST have all three of its operands.

    0 讨论(0)
  • 2021-02-07 03:25

    No, it's not valid.

    The conditional operator takes the form x ? y : z. The third operand is not like the else in an if, it always has to be there.

    0 讨论(0)
提交回复
热议问题