value
в input
всегда является строкой, поэтому +
заканчивается конкатенацией строк ("10" + "10"
is "1010"
, в отличие от 10 + 10
, который является 20
).
Если вы используете input type="number"
(OP нет, но другие могут найти этот ответ), и браузер поддерживает их, вы можете использовать valueAsNumber
:
var onerepmax = document.wodCalculate.oneRepMax.valueAsNumber;
Если вы используете type="text"
или браузер не поддерживает valueAsNumber
:
Вы можете преобразовать пользовательские значения ввода с помощью parseInt(value, 10)
(10 = decimal, base 10), если они предназначены для целых чисел, например:
var onerepmax = parseInt(document.wodCalculate.oneRepMax.value, 10);
Это всего лишь один вариант, однако у вас есть несколько:
+
: value = +value
будет принуждать строку к числу, используя для этого стандартные правила JavaScript. Число может иметь дробную часть (например, +"1.50"
- 1.5
). Результат нечетности строки (кроме e
для научной нотации) дает результат NaN
. Кроме того, +""
- 0
, что может быть неинтуитивным. var onerepmax = +document.wodCalculate.oneRepMax.value;
Number
: value = Number(value)
. Делает то же, что и +
. var onerepmax = Number(document.wodCalculate.oneRepMax.value);
parseInt
, обычно с основанием (номер базы): value = parseInt(value, 10)
. Недостатком здесь является то, что parseInt
преобразует любое число, которое он находит в начале строки, но затем игнорирует нецифровые символы в строке, поэтому parseInt("100asdf", 10)
- 100
, а не NaN
. Как следует из названия, parseInt
анализирует только целое число. // (Same as the first one above)
var onerepmax = parseInt(document.wodCalculate.oneRepMax.value, 10);
parseFloat
: value = parseFloat(value)
. Позволяет дробные значения и всегда работает в десятичном (никогда не восьмеричном или шестнадцатеричном). То же самое делает parseInt
с мусором в конце строки, parseFloat("123.34alksdjf")
- 123.34
. var onerepmax = parseFloat(document.wodCalculate.oneRepMax.value);
Итак, выберите свой инструмент в соответствии с вашим прецедентом. : -)
FileMerge Apple (который включен в их загрузка Инструментов Разработчика ) взгляды, подобные для Объединения , хотя я признаюсь в то, что не использовал также..
Sourcegear DiffMerge является свободным и абсолютно межплатформенным (Windows, Mac и Linux). Я только использовал версию Windows, и она испытывает недостаток еще в некоторых расширенных функциях (как подсветка синтаксиса и открывающийся .diff файлы), но я очень доволен ею.
BBEdit имеет хорошее различное средство просмотра в нем.
KDiff является кросс-платформенным, с открытым исходным кодом, и имеет двоичный файл OSX в наличии.
Существует FileMerge.app, который идет с XCode.
Это может быть выполнено как отдельное автономное приложение:
Смотрите на Changes.app. Да, это для платы, но это очень способно, быстро, легко на глазах. Это также имеет инструмент командной строки. Смотрите на Wiki для подсказок и приемов, особенно с тем, чтобы заставлять его интегрироваться с системами управления версиями. Я люблю Changes.app.