我可以在内联javascript if语句中省略else吗?

eva*_*van 14 javascript

我正在尝试使用它,它似乎没有工作.我猜它不是一个选项,但想确认一下.这有效吗?

(if_it_is) ? thats_cool();
Run Code Online (Sandbox Code Playgroud)

Sar*_*raz 33

你可以&&在那里使用:

if_it_is && thats_cool();
Run Code Online (Sandbox Code Playgroud)

它基本上等于:

if (your_expression){
   thats_cool();
}
Run Code Online (Sandbox Code Playgroud)

  • 这很聪明,但对我来说似乎不太直观。读起来不太好。我明白了,一个问号。那个,不。 (2认同)

Mar*_*all 6

您尝试使用的是Ternary Operator。你错过了它的其他部分。

你可以这样做:

(if_it_is) ? thats_cool() : function(){};
Run Code Online (Sandbox Code Playgroud)

或者

(if_it_is) ? thats_cool() : null;
Run Code Online (Sandbox Code Playgroud)

或者,正如其他人所建议的那样,如果您不关心 else,则可以避免使用三元。

if_it_is && thats_cool();
Run Code Online (Sandbox Code Playgroud)

在 JavaScript 以及大多数语言中,这些逻辑检查从左到右进行。因此,它将首先查看是否if_it_is“trusy”值true, 1,除 之外的字符串等'')。如果这没有通过,那么它不会执行其余的语句。如果它确实通过了,那么它将thats_cool作为逻辑中的下一个检查执行。

将其视为 if 语句内部的部分。没有如果。所以这是一种简写

if (if_it_is && thats_cool()) { }
Run Code Online (Sandbox Code Playgroud)