JavaScript is an ok language to write code in. But it is a terrible language to read. Languages need variable locality so you can comprehend what you are reading. If a language requires an IDE to compile the language in order to resolve variable bindings, that is bad. I remember spending most of my time trying to track where variables were being declared and set when referenced in completely different places and contexts. Drove me nuts, turned me off big time.
I also don't like "magic" shortcuts. Python django uses a lot of magic shortcuts. They go so far as to put meaning into variable names (double underscore things)!! The problem is while it makes code smaller and easier to write, without deep knowledge of the framework it is impossible to read.
And far too few people read code. The ratio of code readers to code writers needs to go up. We think open source is safe because somebody *could* read it and verify it is good.... but nobody actually does.
Code should be readable and comprehendable by someone who doesn't even know the language. It should be self describing enough for that.
Rust breaks this rule too, but only because it had to define a brand new concept of lifetimes.