2012-11-28 3 views
1

Можно создать дубликат:
Workarounds for JavaScript parseInt octal bugПочему parseInt (013) возвращает 11?

Вот jsfiddle, который показывает поведение:

Довольно простой вопрос, какие идеи?

код просто:

parseInt(013) 
+2

[Duplicate] (http://stackoverflow.com/a/850346/27614) –

+0

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Values,_variables,_and_literals#Integers – deceze

ответ

12

Потому что, если ваш номер начинается с «0», то это рассматривается как восьмеричное, таким образом

'013' = 1 * 8 + 3 = 11 
9

parseInt() ожидает строку. Вы предоставили octal, 013.

Использование:

parseInt('013', 10) 

Примечание: Я хотел бы также стимулировать прохождение десятичную, для ясности.

2

Число 013 интерпретируется как восьмеричное. Это не имеет никакого отношения к parseInt; фактически, var a = 013; будет иметь a be 11.

Смежные вопросы