我有两个输入字段,允许用户输入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()
方法转换字符串值。