You just using input parameters of that function in a bit wrong way. Check this for more info. Basically :
The parseInt() function parses a string and returns an integer.
The radix parameter is used to specify which numeral system to be
used, for example, a radix of 16 (hexadecimal) indicates that the
number in the string should be parsed from a hexadecimal number to a
decimal number.
If the radix parameter is omitted, JavaScript assumes the following:
- If the string begins with "0x", the radix is 16 (hexadecimal)
- If the string begins with "0", the radix is 8 (octal). This feature is
deprecated
- If the string begins with any other value, the radix is 10
(decimal)
So 07 and 08 is parsed into octal . That's why 07 is 7 and 08 is 0 (it is rounded to closest)