| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Поясните код |
| Автор: Gold Dragon 23.9.2011, 08:11 | ||
есть вот такой код
Зачем идёт умножение на единицу? В var хранятся цифры. Я так понимаю это своеобразное преобразование в цифры? |
| Автор: ayax2005 23.9.2011, 08:19 |
| Правильно понимаете. |
| Автор: Gold Dragon 23.9.2011, 08:25 |
| ну тогда вопрос закрыт Добавлено через 30 секунд а другого способа нет? или этот самый оптимальный? |
| Автор: ayax2005 23.9.2011, 10:32 |
| это вообще не способ, а ###кодинг. Нужно использовать функци parseInt() |
| Автор: Gold Dragon 23.9.2011, 10:54 | ||
т.е. так нужно?
вот это уже лучше и понятнее |
| Автор: ayax2005 23.9.2011, 11:16 |
| конечно, потому что в случае строкового значения может получиться довольно неприятная штука рпи умножении) |
| Автор: Amphiluke 23.9.2011, 20:28 | ||
Есть и еще более краткое преобразование, чем умножение на 1 — использовать унарный плюс.
|
| Автор: Evghenusi 24.9.2011, 00:32 |
| http://codepad.org/QCZr7KaW аааачуметь Добавлено через 49 секунд я думал на такое только JS способен... |
| Автор: Gold Dragon 24.9.2011, 08:35 |
| я сделал 0+... и вылетела ошибка |
| Автор: Evghenusi 24.9.2011, 19:55 |
| Gold Dragon, посдрафляю |
| Автор: SelenIT 24.9.2011, 22:52 |
| Прикола ради попробовал прогнать http://jsfiddle.net/NEKpU/1/. В FF 6.0.2 (Win 7 Pro x64) все три варианта примерно одинаковы по скорости (parseInt чуть-чуть быстрее, но в пределах погрешности), в IE9 (там же) быстрее всех умножение на 1 (почти вдвое). Чуть позже проверю на др. браузерах |
| Автор: Evghenusi 25.9.2011, 20:41 |
| вдруг заинтересует http://jsperf.com/parse. (поправьте если не правильно тестю) |
| Автор: SelenIT 26.9.2011, 10:40 | ||
Результаты на Win 7 32bit:
Получается, parseInt мечется из крайности в крайность (от самого быстрого в FF и неправдоподобно быстрого в Хроме до самого медленного в IE и Опере), а унарный плюс прилично выглядит везде (если не первый, то хотя бы второй). Но разница в абсолютных цифрах между Хромом и Сафарями впечатляет... |
| Автор: Gold Dragon 26.9.2011, 10:42 |
| и получается что 1* в среднем быстрее всего работает |
| Автор: SelenIT 26.9.2011, 10:49 |
| Нет, в FF и Хроме - медленнее всего. Тут цифры в операциях в секунду (больше - лучше). Но разница не такая чтобы очень |
| Автор: Evghenusi 26.9.2011, 15:34 |
| спасибо что сказали, я бы прошёл мимо и не проверил бы этот вариант. |