【发布时间】:2014-08-03 00:47:14
【问题描述】:
同事让我通过我们的项目对字符串“true : false”进行 grep,我发现很多三元运算符返回显式 true 或 false。例如:
return this.state == Cursor.CLOSED ? true : false;
不仅在我们的项目中,很多模块/库都这样做。这对我来说似乎是多余的,因为作者可以这样写:
return this.state == Cursor.CLOSED;
它是针对 Javascript 中的一些问题的防御性编码吗?或者只是明确说明您要返回的内容?
【问题讨论】:
-
如果状态关闭,这似乎只是返回true? What's wrong with that?你的问题很不清楚。
-
我想他问的是
return this.state == Cursor.CLOSED; -
对我来说这似乎是不必要的,如果
this.state == Cursor.CLOSED它已经是真的了吗? -
在这种情况下,我猜作者没有意识到他/她可以只返回比较的结果。但是,
return foo || bar ? true : false;与return foo || bar非常不同。 -
@RossHettel:在这种情况下,它被用作
!!的更突出版本。该值还不是布尔值——String.prototype.match返回一个数组。
标签: javascript node.js ternary-operator