I do understand why some don't like JS/TS... and I really do get it.
That said, I think a lot of complaints are from a combination of ignorance and conflating the DOM with the language.
As to numbers, it's an IEEE 64-bit floating point, the precision issues are there in any language if you use float64 for all number logic... Math.round() against any number that fits in a safe integer range will work roughly the same as int32 will, though max safe integer is around 52 bits, not 32 or 64.
Coersion issues often come from sloppy/jr devs who don't understand how it works, or even if/when you should rely on it.
Can we get this user banned too, it's still the same troll. You can see that the link is to the same person AND it has 10 upvotes just like her other posts.
Kind of unrelated to this but the person who did that devrant is theabbie (aka @PixelCraft the spammer) and based on the fact that kn0thing acc was created 3 hours before this post I think it is highly likely the @PixelCraft spammer is back again.
Yeah never got this bashing JS for things like NaN !== NaN literally there in every language. On this note though I find it irritating that there are 16million NaN values, the author of the spec's reason is that representing NaN only takes a few bits and he had a bunch left over to try and be descriptive of what numbers went in (bit fuzzy on this as you couldn't represent both numbers in that space anyway). Either way no one uses that and yet you get languages like Rust that are obsessed with correctness not implementing any sorting or ordering for floats because NaN !== NaN by spec definition so they can't be ordered.. sigh