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

后端 未结 7 1364
鱼传尺愫
鱼传尺愫 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()) { }
    

提交回复
热议问题