Почему parseInt ('08 ') дает 0, тогда как parseInt ('07') дает 7

Возможный дубликат:
Методы обхода для JavaScript parseInt восьмеричной ошибки

Я работаю над javascript, и мне кажется, что это странно, что функция javascript parseInt ('08 ') возвращает 0, а parseInt ('07') возвращает 7.

это поведение похоже на Firefox.

parseInt ('08 ') возвращает 8 в IE, но 0 в Firefox..

Почему? Я хочу, чтобы parseInt ('08 ') возвращал 8, как и ожидалось, и попадал в IE.

Ответы

Ответ 1

Да, я наткнулся на это раньше. Это действительно странно, потому что некоторые браузеры интерпретируют это так, как вы хотите разобрать его в базе 8. Рассмотрим следующую статью:

http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C85006A6604

в основном, вы должны сказать синтаксическому анализатору, чтобы использовать номера базы 10:

parseInt('08', '10');