JavaScript parseInt e raiz padrão

Aprendi da maneira mais difícil que o método parseInt (string) do JavaScript assume que qualquer valor com um ‘0’ à esquerda está em base8. Para complicar as coisas, há um bug na maneira como o mecanismo JavaScript do Chrome lida com números de base 8. Tive os dois casos de uso a seguir:

var month1 = parseInt("04");
var month2 = parseInt("08");

O mês1 estava voltando como esperado, (int) 4, mas o mês2 estava voltando como 0. Mudar para um radical explícito de 10 corrige o problema:

var month2 = parseInt("08",10);

Portanto, preste atenção aos zeros à esquerda com suas conversões string-para-int. E alguém deveria informar aos desenvolvedores do mecanismo JS do Chrome que ’08’ não é 0 na base 8, deveria ser NaN. 😉