三元运算符返回"true:false".为什么?

Ros*_*tel 11 javascript ternary-operator node.js

通过我们的项目,Coworker让我通过字符串"true:false"grep,我发现很多三元运算符返回显式的真或假.例如:

return this.state == Cursor.CLOSED ? true : false;
Run Code Online (Sandbox Code Playgroud)

不仅仅是在我们的项目中,而且有很多模块/库可以做到这一点.对我来说这似乎是多余的,因为作者可能只是这样写的:

return this.state == Cursor.CLOSED;
Run Code Online (Sandbox Code Playgroud)

它是针对Javascript中的一些陷阱的防御性编码吗?或者只是明确你要回来的东西?

Ber*_*rgi 9

它是针对Javascript中的一些陷阱的防御性编码吗?

号码==总是返回一个布尔值.

条件是完全多余的,并被认为是一种不好的做法.简化它!