JS Love and Growth
Because it is very, very forgiving. If you type something wrong. It works. If an integer it is passed to a function that buffers data it is made string, it outputs as a string, and enters somewhere else as string and maybe there it is received by a function that actually makes it an int and nobody knows why and it works. (Much in the same amount as times where it blows and nobody knows why).
And as it became so good with graphics handling(and by good, I mean supported by everyone). It has now ported to other environments. Semi-native apps on mobile devices. It ported to computers with electron and we all listen through everything on spotify. It looks good, it works good. It receives the data flow. It takes it somewhere else.