I want to remind everyone that JavaScript aka ECMAScript is just a standard that defines the language. That´s why there are so many variants on its implementation, because is up to the vendor (Mozilla, Google, Safari, Opera) decide how do they implement the features in their browsers.
When I was learning I didn't like a lot of it... because my head was hardwired to think in OOP or better said COP (Class Oriented Programming) that was my mistake. It was only when I let go of my old programming habits that I could embrace and start loving JavaScript. It is such a beautiful, flexible and powerful language now that I know it better.
JavaScript has a lot of advantages and none of the disadvantages of the COP languages like Java, C#, C++. It is not perfect, and it is not meant to be like that.
What I don't like about JavaScript is that its community has taken this long to truly show the power and capabilities of the language.
Further reading: medium.com/javascript-scene/the-two-pillars-of-ja… github.com/getify/You-Dont-Know-JS