It is kind of a hacky language. Weakly typed, inconsistent runtimes and all that. Server side code in strongly typed languages is generally more predictable.
Wait, what....
For companies that can throw huge resources at their apps (e.g. google) the language deficiencies do not matter as much because they can be dealt with with extra work and testing.
Unless you really mean weakly typed (e.g. "1" + 2 = "12" vs "1" + 2 raises TypeError). In which case I'd say that that's one of JavaScript's (pardon the pun) weaker points.
Disclosure: I like JS. Its weak typing can still be annoying (although you can avoid a lot of it by using strict comparisons).