parseInt() cerca di interpretare il parametro passato... se il primo carattere e' uno 0 assume che il dato sia in formato ottale... e si comporta di conseguenza.
Per evitare equivoci utilizza anche il secondo parametro della funzione con il quale puoi forzare la base di conversione:
intero = parseInt(numero_o_stringa, base)
Nel tuo caso metti 10.
ciao