![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| 02077461 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Собственно тема:
напишите javascript:alert(parseInt("07")); в строке браузера, увидите 7, напишите javascript:alert(parseInt("08")); что увидите?.. Кто сможет объяснить?.. |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
| cruelangel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
javascript:alert(parseInt("0xff"));
javascript:alert(parseInt("2.5e+2")); |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: нет Всего: 223 |
Это врожденный баг любого компилятора/интерпретатора - они выполняют то, что програмист написал, а не то, о чем он думал Вопрос на засыпку - чему равно ВОСЬМЕРИЧНОЕ число 8 ? (08 - это именно оно и есть) |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Нет, на самом деле, никакого бага. Я не случайно выше взял это слово в кавычки. Встречный вопрос на засыпку - а где Вы увидели ВОСЬМЕРИЧНОЕ число? Есть только строка '08'. Другой вопрос - как будет эта строка интерпретирована? ECMAScript Language Specification в случае, когда не указано основание (вторым параметром), позволяет представить эту строку или же восьмеричным, или же десятичным числом. Есть одна оговорка - было бы предпочтительней представить значение строки, как число в десятичной форме. Но оговорки оговорками, а движки работают так, как им удобней, пользуясь вольной трактовкой в спецификации. В результате из доступных мне сейчас браузеров лишь Opera учитывает "пожелание":
Вывод один - чтобы получить кроссбраузерный результат, нужно явно передавать в parseInt второй параметр. |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
добавлю к этому: либо использовать через parseFloat(...), где подобный баг не наблюдается |
|||
|
||||
| 02077461 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Спасибо всем, предполагал что-то подобное. Отдельное спасибо AKS.
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |