具有return语句JavaScript的三元运算符

JDi*_*522 46 javascript jquery ternary

如果选中下拉列表中的选项,我需要返回true或false.

这是我的代码:

var active = sort.attr('selected') ? return true : return false;
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,第一个return是意外的.

为什么?

Geo*_*e K 117

您可以在javascript中从三元运算符返回,如下所示:

return sort.attr('selected') ? true : false;
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲是正确的,并且是OP的问题的答案,但不是OP实际需要的:-) (2认同)
  • 但对于来自 Google 的人来说是完美的答案;) (2认同)

小智 45

您不能将return语句分配给变量.如果要active为其分配值,true或者false只删除returns:

var active = sort.attr('selected') ? true : false;
Run Code Online (Sandbox Code Playgroud)

或者更好:

var active = sort.prop('selected');
Run Code Online (Sandbox Code Playgroud)

因为.prop总是返回true或者false,无论初始标记属性如何.


nig*_*aph 9

为什么不呢?

 return sort.attr('selected');
Run Code Online (Sandbox Code Playgroud)


air*_*aft 6

来自文档:

语法
condition ? expr1 : expr2
参数
条件(或多个条件) 计算结果为 true 或 false 的表达式。
expr1, expr2
具有任意类型值的表达式。

你应该注意Expressions with values of any type.,这return xxx不是一个表达式。

来自维基百科:

表达式是一个语法结构,它必须格式良好:允许的运算符必须在正确的位置具有正确数量的输入,组成这些输入的字符必须有效,具有明确的操作顺序等。违反语法规则的符号不是格式良好的,也不是有效的数学表达式。

因此,根据您的情况,您可以使用:

return sort.attr('selected') ? true : false
Run Code Online (Sandbox Code Playgroud)