BVernon
BVernon

Reputation: 3747

Can greater than comparison return anything other than true or false?

I found the following in a code example at datatables.net.

return value > 20 ? true : false;

Why wouldn't they have just written

return value > 20;

Could the latter return values other than true or false? Trying to figure out whether they were maybe just thinking the code was more readable this way, or whether there is actually a significant reason for doing this that I'm not aware of.

Upvotes: 2

Views: 119

Answers (2)

user7491506
user7491506

Reputation: 186

The only possible result is true or false. I don't think it makes it more readable. The only reason they may have done it that I can think of is that they were a new developer and didn't realize value > 20 was valid to return.

Upvotes: 4

Scott Marcus
Scott Marcus

Reputation: 65806

This is along the same lines as someone writing this:

if(value > 20 === true){ . . . }

Which is unnecessary because if conditions are implicitly compared against their "truthy-ness". The statement should be:

if(value > 20){ . . . }

As such, in your example, the code should just be:

return value > 20;

Because (as you correctly surmize) a greater-than/less-than expression can only result in true or false.

Now, if someone wanted to return an alternate set of binary results, then you could see something like this being used:

return value > 20 ? "acceptable" : "unacceptable";

Upvotes: 4

Related Questions