三元操作符返回“true:false”。 为什么?

同事通过我们的项目让我对string“true:false”非常感兴趣,我发现很多三元运算符都返回了明确的真假。 例如:

return this.state == Cursor.CLOSED ? true : false; 

不只是在我们的项目中,而是大量的模块/库。 这对我来说似乎是多余的,因为作者可以像这样写:

 return this.state == Cursor.CLOSED; 

是防止编码对Javascript的一些gotcha? 或只是为了明确你回来的东西?

是防止编码对Javascript的一些gotcha?

编号==总是返回一个布尔值。

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

这是不必要的,但是在很多语言中这是一个相当常见的错误。 因为平等运算符几乎全部用于条件,所以一些程度较差的程序员不知道,更多有经验的程序员偶尔会忘记它实际上可以用于其价值。 从来没有任何一个主要的JavaScript实现有这个必要的怪癖。

†“错误”在这里感觉不好,因为代码是正确的,只是不必要的冗长。 但是我想你知道我的意思。

Interesting Posts