В JavaScript, почему восьмеричная строка чисел представлена как десятичное число? Я могу использовать строчную строку с использованием Number()
или +
, почему не восьмеричный?
Например:
1000 === +"1000" // -> true
0xFF === +"0xFF" // -> true
0100 === +"0100" // -> false - +"0100" gives 100, not 64
Я знаю, что могу разбираться с parseInt("0100" [, 8])
, но я хотел бы знать, почему кастинг не работает, как с шестнадцатеричными и десятичными числами.
Кроме того, кто-нибудь знает, почему восьмеричные литеры отбрасываются из ECMAScript 5th Edition в строгом режиме?