为什么 Javascript 在减法而不是加法时将值视为整数?

fdf*_*dfd 2 javascript

我有两个输入字段,允许用户分别输入 2 个带有 ID(xy)的数字,以及一个用于计算数字的按钮。因此,当我尝试使用方法将它们相加时getElementById(),它将该值视为字符串并将它们组合在一起。我确实知道我需要使用parseInt()函数将字符串转换为整数。

但是,当我对减法函数使用完全相同的方法,情况并非如此。它将值视为整数。有谁知道为什么吗?

function addition() {
    var number1 = document.getElementById("num1").value;
    var number2 = document.getElementById("num2").value;
	
    var total2 = number1 + number2;
    document.getElementById("tes4t").innerHTML = total2;
}


function subtract() {
    var number1 = document.getElementById("num1").value;
    var number2 = document.getElementById("num2").value;
	
    var total = number1 - number2;
    document.getElementById("tes4t").innerHTML = total;
}
Run Code Online (Sandbox Code Playgroud)
Number1 : <input type="number" id="num1">
<br>

Number 2:    <input type="number" id="num2">
<br>
<button onclick="addition()">add </button>
<button onclick="subtract()">subtract </button>




<div id="tes4t">

</div>
Run Code Online (Sandbox Code Playgroud)

Mil*_*lan 5

在Javascript中,+运算符也是用于String连接的字符串运算符(例如“x”+“y”=“xy”)。

在两个操作数上使用+运算符(其中至少一个是String引擎)会将两个操作数视为 aString并执行串联。

由于getElementById("num1").valuereturn String, using+将产生连接字符串。

如果-它只是算术运算符 - 引擎将在应用运算符之前尝试将操作数的值转换为数字。


如果需要确保执行加法,可以使用 orNumber()方法parseInt()来转换字符串值。