我有两个输入字段,允许用户输入2个带有ID的数字,分别是 x y ,还有一个用于计算数字的按钮。因此,当我尝试使用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;
}
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>

最佳答案

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

在至少一个是+引擎的两个操作数上使用String运算符,会将这两个操作数都视为String并执行串联。

由于getElementById("num1").value返回String,因此使用+将产生串联的字符串。

如果是-,则仅是算术运算符-引擎将在应用运算符之前尝试将操作数的值转换为Number。

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

07-24 17:50