Writing JavaScript and feeling you're surrounded by errors is pretty normal. It's a hastily-designed language. There's no getting away from the fact that everything is going to feel a little bit fragile. Just accept it and don't expect perfection.
JavaScript was hastily designed, has never recovered, and shows no sign of ever fixing the fundamental problems. :-(
Most languages have features to avoid, JavaScript is no different. Many JavaScript developers use linters to avoid the poor `==` feature. I'm unfamiliar with the argument of the `Map` datastructure implementation being broken. Do you have a reference to that claim?
What do you mean about maps, and whitespace sensitivity? I've never heard anything about that.