Vale lembrar que a linguagem começou meio bagunçada (várias implementações de diferentes empresas, sem muita padronização), e só depois resolveram padronizar, o que resultou na criação do padrão ECMAScript.
A especificação oficial está aqui. É um texto chatíssimo, mas importante pra quem quer entender os meandros da linguagem. Eu consulto sempre que preciso saber como funciona algum detalhe específico, é a fonte que acaba com todos os achismos :-)