Javascript 使用三元运算符:这是合法语法吗?控制台没有告诉我

Javascript 使用三元运算符:这是合法语法吗?控制台没有告诉我,javascript,Javascript,所以我有点问题,这里是基本版本 var x = 10; (x < 5) ? call() : "" ; function call() { alert('Less'); } 它给了我一个错误以及: var x = 10; (x < 5) ? call(); function call() { alert('Less'); } 具体来说,我要问的是:如果要使问号在没有else部分的情况下工作,问号是否有适当的语法?提前感谢。操作员| |和&& 操作员| |和&&: 要按

所以我有点问题,这里是基本版本

var x = 10;
(x < 5) ? call() : "" ;

function call() {
  alert('Less');
}
它给了我一个错误以及:

var x = 10;
(x < 5) ? call();

function call() {
  alert('Less');
}
具体来说,我要问的是:如果要使问号在没有else部分的情况下工作,问号是否有适当的语法?提前感谢。

操作员| |和&&

操作员| |和&&:


要按自己的方式执行,必须将条件值放入一个伪变量中,并使函数调用返回一些内容。这有点乱:

var dummy = (x < 5) ? call() : "";
就像其他答案建议的那样,不要这样做,即使你可以。糟糕的语义就像没有降落伞就从飞机上跳下来。这可能很好,但更有可能你会撞到什么东西上


所以,对于你要问的问题,答案是不要。条件的正确语法是使用关键字if。

要按自己的方式执行,必须将条件值放入一个伪变量中,并使函数调用返回一些内容。这有点乱:

var dummy = (x < 5) ? call() : "";
就像其他答案建议的那样,不要这样做,即使你可以。糟糕的语义就像没有降落伞就从飞机上跳下来。这可能很好,但更有可能你会撞到什么东西上



所以,对于你要问的问题,答案是不要。条件的正确语法是使用关键字if。

为什么不使用if x<5调用;是的@jfriend00,这就是我要做的。你不必使用if,这只是更好的方法。我会接受你的建议,毕竟,我是自找的,所以不接受它是愚蠢的。再次感谢大家。不,不是。请先阅读我的问题,然后再指责它是重复的。我想看看三元运算符的else部分是否不需要。另一篇帖子使用JQuery,这不是我想要的;是的@jfriend00,这就是我要做的。你不必使用if,这只是更好的方法。我会接受你的建议,毕竟,我是自找的,所以不接受它是愚蠢的。再次感谢大家。不,不是。请先阅读我的问题,然后再指责它是重复的。我想看看三元运算符的else部分是否不需要。另一篇文章使用JQuery,这不是我想要的。所以没有一种方法可以像我那样做?哦,好吧,但是谢谢你的帮助!我想我将不得不在没有else的情况下使用if。@Brendan你听起来对这个事实很失望。不是这样,三元运算符语法是exp?exp:exp,两个分支都需要。这就是它的实际名称?很高兴知道,我将不得不编辑我的问题。所以没有办法像我那样做?哦,好吧,但是谢谢你的帮助!我想我将不得不在没有else的情况下使用if。@Brendan你听起来对这个事实很失望。不是这样,三元运算符语法是exp?exp:exp,两个分支都需要。这就是它的实际名称?很高兴知道,我将不得不编辑我的问题。将结果放入虚拟变量不会改变它是否合法语法,也不会比OP的原始代码更好。编辑,感谢您指出存在错误。我没有指定函数应该返回什么。无论如何,我从不推荐这种语法。这只是为了说明有一种方法可以做到这一点。将结果放入一个伪变量不会改变它是否是合法语法,也不会比OP编辑的原始代码更好。感谢您指出存在错误。我没有指定函数应该返回什么。无论如何,我从不推荐这种语法。这只是为了表明有一种方法可以做到这一点。
if (x < 5) {
  call();
}
var dummy = (x < 5) ? call() : "";