I still have a silly dream that one day Javascript will split the numeric type into 32-bit floats and ints by default, like Ruby does. I wonder how much of the existing ecosystem that would break.
We've got various number types in array form: {u}int{8,16,32}, floats too.
I feel like that is about the best we can do without harming backwards compatibility. They are there when needed, but we are stuck with the ambiguous "number" type in general.