В JavaScript установка 0 перед целым числом приведёт к восьмеричному преобразованию, а 0x - к шестнадцатеричному, а к двоичному 0b.
Это поведение не имеет место, если в вашем целом числе есть 8 или 9, поскольку приведение к восьмеричному в этом случае невозможно.
Так что поведение здесь кажется совершенно нормальным для JavaScript. Поэтому мне нужно отнестись к своему выражению, чтобы избежать этого.