Defaulting the radix to 8 (if the string starts with a 0) in JavaScript’s parseInt function annoys me, only because I continue to forgot to pass the optional second argument as 10. I’m looking for an answer telling me why it makes sense to have it default to 8.
Advertisement
Answer
It only “defaults” to 8 if the input string starts with 0. This is an unfortunate carryover from C and C++.
You can use Number('0123')
instead, or, as you said in the question, parseInt('0123', 10)
.
How do I work around JavaScript’s parseInt octal behavior?
Can you tell me more about this carryover?