Когда мы выполняем операцию суммирования между двумя элементами, его необходимо преобразовать в число, не конвертируя его, слияние их потому что element.val()
возвращает строку. Но когда мы выполняем другие операции, такие как умножение, вычитание или деление, он дает ожидаемый результат без выполнения какого-либо типа.Почему оператор «+» ведет себя отличным от операторов «*», «/» и «-» в javascript
function add()
{
alert($("#first").val() + $("#second").val());
}
function divide()
{
alert($("#first").val()/$("#second").val());
}
function multi()
{
alert($("#first").val() * $("#second").val());
}
function subst()
{
alert($("#first").val() - $("#second").val());
}
<input type="text" Id="first" />
<input type="text" Id="second" />
<input type="button" Id="add" onclick="add()" value="+"/>
<input type="button" Id="divide" onclick="divide()" value="/"/>
<input type="button" Id="multi" onclick="multi()" value="*" />
<input type="button" Id="subst" onclick="subst()" value="-"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
см. Http://stackoverflow.com/q/13953939/6868584 – Aidin
Возможный дубликат [Как заставить JS выполнять математику вместо того, чтобы поместить две строки вместе) (http://stackoverflow.com/questions/ 4841373/how-to-force-js-to-do-math-вместо-put-two-strings-together) –
здесь некоторые варианты использования и [пояснения] (http://www.java2s.com/Tutorials/ Javascript/учебник/0110__Javascript_arithmetic_operators.htm) – crowchirp