带有返回语句 JavaScript 的三元运算符
Ternary operator with return statements JavaScript
如果下拉列表中的选项被选中,我需要返回 true 或 false。
这是我的代码:
var active = sort.attr('selected') ? return true : return false;
我收到一个错误,指出第一个return
是意外的。
为什么?
你可以从javascript中的三元运算符返回,如下所示:
return sort.attr('selected') ? true : false;
不能将 return 语句赋给变量。如果您希望active
被分配值true
或false
,只需删除return
s:
var active = sort.attr('selected') ? true : false;
或者更好:
var active = sort.prop('selected');
因为.prop
总是返回true
或false
,而不管初始标签属性如何。
为什么不做这个呢?
return sort.attr('selected');
从文档中:
语法
condition ? expr1 : expr2
参数
条件(或条件) 计算结果为 true 或 false 的表达式。
EXPR1, EXPR2
具有任何类型的值的表达式。
你应该注意Expressions with values of any type
,return 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;
- 三元运算符检查多个字符串
- 用javascript中的三元运算符连接字符串
- 使用AngularJs数据绑定的三元运算符显示图像
- 三元运算符是NaN
- AngularJS模板中的三元运算符
- Javascript 同构三元运算符无法正确解析
- 车把中有三元运算符吗.js
- 三元运算符未执行的虚假语句
- 根据三元运算符选择函数
- 用三元运算符整理javascript
- 堆叠三元运算符在 Angularjs 表达式中不起作用
- es6javascript推荐使用三元运算符应用模板文本的方法
- 具有逻辑运算符的复杂三元运算符
- 通过三元运算符的自赋值
- 三元运算符中的表达式作为函数
- JavaScript中看似多余的三元运算符
- js:三元运算符中的多重返回
- Javascript 三元运算符结果
- 使用三元运算符缩短代码
- 语句中的三元运算符