Почему 0154 === 108?

Что происходит здесь и почему?

document.write(0154); // === 108

Ответ 1

Числа, начинающиеся с 0, считаются восьмеричными (базовыми 8) числами.

база 8 [основание] [10]

но если вы использовали число с 8 или 9, вы бы не увидели эту проблему, так как ни 8, ни 9 не являются восьмеричными цифрами.

Ответ 2

0154 - восьмеричный. 1 * 64 + 5 * 8 + 4 = 108.

Ответ 3

его восьмеричное число. восьмеричное value = 0154 и десятичное value = 108

Ответ 4

Он печатает восьмеричный эквивалент того, что вы написали, потому что он начинался с 0. Попробуйте 0001 (распечатывается 1), 0010 (распечатывается 8), 0011 (распечатывается 9)