Потенциальный баг JS в IE > 5.0 + Netscape

KR

alive in new life
Потенциальный баг JS в IE > 5.0 + Netscape

При написании очередной программы на JavaScript наткнулся на очень интересный результат работы parseInt()

очень простой код:

<script type='text/javascript' language='JavaScript'>
alert(parseInt('08'));
</scirpt>

Возможный баг состоит в том, что для строк
'01' - '07' происходит предполагаемое значение в целое, а именно в 1 - 7 соответственно.

при значениях строк '08' и '09' происходит преобразование не в 8 и 9, что было бы логично, а в 0.

Данная особенность работы наблюдается во всех версиях IE начиная с 5.0 и до IE 6.0.2800.1106IS+SP1; Q828750; Q330994; Q824145;

Самое интересное в том, что эта же особенность наблюдается в Netscape Navigator 4.0 и 4.7

Хотелось бы узнать Ваше мнение по этому поводу и результат рыботы в других браузерах.

и напоследок еще пару интересных кусков
<script type='text/javascript' language='JavaScript'>
alert(parseInt('060'));
alert(parseInt('60'));
</scirpt>
 

si

Administrator
Потенциальный баг JS в IE > 5.0 + Netscape
это НЕ баг с js, это баг у тебя ;)

про системы исчисления отличные от десятичной слышал ? если нет иди почитай про восьмиричную ...
 

StUV

Rotaredom
>> это НЕ баг с js, это баг у тебя

особенно вот этот:
>> alert(parseInt('060'));
=)))
 

KR

alive in new life
ок. а что насчет

<script type='text/javascript' language='JavaScript'>
alert(parseInt('08'));
</scirpt>
?
 

KR

alive in new life
да. разобрался. спасибо

If no radix argument is provided or if it is assigned a value of 0, the function tries to determine the base. If the string starts with a 1-9, it will be parsed as base 10. If the string starts with 0x or 0X it will be parsed as a hexidecimal number. If the string starts with a 0 it will be parsed as an octal number. (Note that just because a number starts with a zero, it does not mean that it is really octal.)
 
Сверху