为什么'+'运算符在javascript中的行为与'*','/'和' - '运算符不同

时间:2017-02-08 11:56:12

标签: javascript

当我们在两个元素之间执行求和操作时,需要将它转换为数字,而不进行转换它会合并它们,因为element.val()返回一个字符串。但是当我们执行其他操作(如乘法,减法或除法)时,它会给出预期的结果而不执行任何类型转换。

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>

1 个答案:

答案 0 :(得分:6)

+运算符用于连接字符串或添加数字(如果其中一个操作数是字符串,则解释器将支持连接)。但/*%仅用于数字,因此解释器必须将操作数视为数字。

有关更多解释,这是我两天前提出的类似问题的answer。 (这很长,所以我不会再在这里重新发布)。