I don't think I agree with your point. Javascript is a very small language, and while there are a number of gotchas they are enumerable and well-defined.
Central concepts:
- Objects
- Prototypes
- Scope chains
- Closures
- Function.bind, Function.apply/Function.call
Gotchas:
- Behavior of the "new" operator
- Value of "this"
- Type coercion, falsiness of "", == vs. ===
- var hoisting
- if/for/while do not create scope
- function expression vs. function declaration
Many of the gotchas are self-evident if you learn the central concepts.