带有返回语句 JavaScript 的三元运算符

Ternary operator with return statements JavaScript

本文关键字:三元 运算符 返回 语句 JavaScript      更新时间:2023-09-26

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

这是我的代码:

var active = sort.attr('selected') ? return true : return false;

我收到一个错误,指出第一个return是意外的。

为什么?

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

return sort.attr('selected') ? true : false;

不能将 return 语句赋给变量。如果您希望active被分配值truefalse,只需删除return s:

var active = sort.attr('selected') ? true : false;

或者更好:

var active = sort.prop('selected');

因为.prop总是返回truefalse,而不管初始标签属性如何。

为什么不做这个呢?

 return sort.attr('selected');

从文档中:

语法

condition ? expr1 : expr2 参数
条件(或条件) 计算结果为 true 或 false 的表达式。
EXPR1, EXPR2
具有任何类型的值的表达式。

你应该注意Expressions with values of any typereturn xxx不是一个表达。

来自维基百科:

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

因此,在您的情况下,您可以使用:

return sort.attr('selected') ? true : false

只是对你的代码的评论:

> sort.attr('selected')

似乎正在使用 jQuery attr 方法,该方法用于尝试猜测您想要的内容并返回属性或属性。我认为在最新版本中,它始终返回属性。

无论如何,所选属性的存在仅意味着该项目(选项元素?)是默认的选定选项,并不意味着它是当前选定的选项。为此,您需要选定的属性(jQuery prop方法)。由于所选属性是布尔值:

> sort.attr('selected') ? true : return false;

可以简单地是:

 sort.prop('selected');

或者没有jQuery:

 optionElement.selected;