![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
griker |
|
|||
![]() MDMA ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 14.7.2006 Где: Tallinn Репутация: 1 Всего: 8 |
Здравствуйте, у меня возникла проблема при создании калькулятора)
А именно проблема в том, что при следующей записи
Это считывается как (при написании) значение первого input и второго input, а не сложение данных переменных. Возможно данный вопрос является глупым, но всё равно спрашиваю. Благодарю) -------------------- I don't respect police |
|||
|
||||
dstorm81 |
|
|||
![]() бездельник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1178 Регистрация: 18.1.2006 Где: (16RU) Репутация: 20 Всего: 39 |
a=parseFloat(document.form.n.value)+parseFloat(document.form.m.value);
-------------------- на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#) |
|||
|
||||
griker |
|
|||
![]() MDMA ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 14.7.2006 Где: Tallinn Репутация: 1 Всего: 8 |
Большое спасибо) ![]() -------------------- I don't respect police |
|||
|
||||
korisarimi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 9.5.2006 Репутация: нет Всего: 1 |
еще можно через Number(переменная).
|
|||
|
||||
Zeroglif |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Быстрее всего:
И не нужна будет ни Number, ни тем более parseFloat... |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Zeroglif, parseFloat в любом случае вызываеться самим транслятором, а читабельность конечно по вкусу.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Zeroglif |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Так, да не так, parseFloat лексически является идентификатором, согласно ES 10.1.4 мы ищем идентификатор среди свойств объектов, входящих в Scope Chain, пока по идее не найдём его в поле объекта Global (window в браузерах). Плюс к этому, в рамках самого алгоритма функции parseFloat, который предполагает, что мы можем подсунуть ему всякую пакость (объект, например), аргумент насильно приводится к строке (toString у объектов). Значит, и тут мы снова должны совершить небольшую прогулку, но уже по полям самого объекта (его прототипа и т.д.), если аргументом объект. Да к тому же некоторые из нас имеют стойкую привычку нативные свойства переопределять, parseFloat конечно вряд ли тронут, а вот toString запросто. Добавим сюда до кучи более сложный алгоритм самой функции, чем алгоритм конвертации через унарный плюс или через Number(). Ниже пример, где видно, сколько объектов Scope Chain нужно пройти, и как переопределение toString влияет на parseFloat. А если раскомментировать параметр в функции A, то мы переопределим ("забъём") уже и parseFloat, и само собой получим ошибку.
Я это всё не к тому, что дескать нехорошо переопределять свойства или совать в аргумент объект (всего этого скорее всего не будет!), а к тому, что короткий путь к результату правильнее длинного туда же..., а читабельность конечно же по вкусу ![]() Это сообщение отредактировал(а) Zeroglif - 25.9.2006, 03:04 |
||||
|
|||||
griker |
|
|||
![]() MDMA ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 14.7.2006 Где: Tallinn Репутация: 1 Всего: 8 |
Всем большое спасибо за помощь
![]() Благодарю ![]() -------------------- I don't respect police |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Zeroglif, вобще это зависит от реализации конечно, но если помнить что скрипты не являються сильной стороной браузеров, то конечно ты прав
![]() Вывод: если требуеться сэкономить пару микросекунд, то лучше пользоваться приведением к числу через +. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |