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,
Can you tell me more about this carryover?