Well that's because this is checking if a value may be a valid number.
It's not safely converting the value to a number.
That's done after a parseFloat()
There's no way on earth we'd be arguing about such a ridiculously trivial thing for most other languages.
Nobody should have to look any of this up.
Yeah, we work around it ... but it drives me crazy. :)