parseInt(1 / 0, 19) - какой будет ответ?
Народ, не могу понять, откуда берётся ответ 18??
parseInt(1 / 0, 19); -> 18 parseInt(NaN, 19); -> NaN parseInt("NaN", 19); -> NaN parseInt(0, 19); -> 0 |
вторым аргументом в функцию parseInt передается система счисления видимо
|
delias,
1 / 0 == Infinity // а не NaN |
Я думаю вопрос в том, почему после восемнадцатиричной системы Infinity преобразуется в 18?
alert(parseInt(Infinity, 16)); // → NaN alert(parseInt(Infinity, 17)); // → NaN alert(parseInt(Infinity, 18)); // → NaN alert(parseInt(Infinity, 19)); // → 18 alert(parseInt(Infinity, 20)); // → 18 alert(parseInt(Infinity, 21)); // → 18 На самом деле все просто: в девятнадцатиричной системе число 18 кодируется буквой «i», а функция parseInt преобразует Infinity в строку alert(parseInt("i", 19)); // → 18 alert(parseInt("ixyz", 19)); // → 18 до девятнадцатиричной системы в начале строки «infinity» не находилось буквы, которой соответствовало бы число
|
Octane, спасибо за разъяснение, познавательно.
|
Часовой пояс GMT +3, время: 00:44. |