Пробовал сравнивать 10 и 010 as 10 == 010
, но получил результат false
.
Затем я попытался напечатать/оповестить следующие значения,
10 result 10
010 result 8
12 result 12
012 result 10
100 result 100
0100 result 64
65 result 65
065 result 53
99 result 99
099 result 99
196 result 196
0196 result 196
Такие же результаты для отрицательных чисел,
-99 result -99
-099 result -99
-32 result -32
-032 result -26
-196 result -196
-0196 result -196
-66 result -66
-066 result -54
Подробнее
от (+/-)078 до (+/-)099 результаты такие же правильные.
Ex:
78 result 78
078 result 78
-87 result -87
-087 result -87
То же поведение в Chrome, FireFox, IE.
Мне интересно, почему это странное поведение? Это ошибка JS или особенность JS. Может кто-нибудь объяснить, почему это так.
Заранее спасибо.
Пожалуйста, прокомментируйте, если вам нужны какие-либо подробности.
0x
, как в0x123
, говорит, что число шестнадцатеричное.) - person nnnnnn   schedule 29.10.201410 == 012
(true), потому что, как вы нашли выше, восьмеричное число 012 равно 10 в десятичном виде. Вот почему очень важно установить систему счисления в parseInt() и это даже указано в описании - person Spokey   schedule 29.10.2014