我有一个简单的加法计算器Javascript代码。它完全正常,但是当我尝试在两个变量上使用add(num1, num2)
函数时,而不是添加两个变量,它只是将它们彼此相邻打印。
例如,我输入5和4
它会在'回答'中打印54
如果我从输入中删除了获取值的部分并将其替换为数字,我可以调用add(num1, num2)
并且它可以正常工作。例如,我可以说add(5, 3)
,返回值为8
,只是不使用变量。
这是代码
var back = 0;
function add(num1, num2) {
return num1 + num2;
}
function functions() {
if (back==0)
{
var first = document.getElementById("number1").value;
var second = document.getElementById("number2").value;
var Addition = add(first, second);
document.getElementById("number1").style.display = 'none';
document.getElementById("number2").style.display = 'none';
document.getElementById("Answer").style.display = 'block';
document.getElementById("Answer").value = "Answer: " + Addition;
document.getElementById("write").value = "Go Back";
back = back+1;
}
else
{
document.getElementById("Answer").style.display = 'none';
document.getElementById("number1").style.display = 'inline';
document.getElementById("number2").style.display = 'inline';
document.getElementById("write").value = "Add";
back = 0;
}
}
答案 0 :(得分:3)
当您获得用户输入的值时,它将以字符串形式返回。因此,当您键入5和4时,它将返回“5”和“4”。因此,您使用parseInt然后将其更改为数字。
var first = document.getElementById("number1").value;
var second = document.getElementById("number2").value;
first = parseInt(first, 10);
second = parseInt(second, 10);
, 10
只是让计算机知道您正在使用基数为10的值(0,1,2,3,4,5,6,7,8,9),而不是像base2值(0) ,1,1,1,1,0,0)或其他。
答案 1 :(得分:0)
return parseInt(num1) + parseInt(num2);
答案 2 :(得分:0)
您需要将值转换为数字,您可以使用Number
函数来执行此操作
function add(num1, num2) {
return Number(num1) + Number(num2);
}
答案 3 :(得分:0)
您有两种选择来解决此问题:
1-使用Typescript,然后将其编译为Javascript
2-使用Javascript并定义输入类型:
var button = document.querySelector("button");
var input1 = document.getElementById("num1");
var input2 = document.getElementById("num2");
function add(num1, num2) {
if (typeof num1 === 'number' && typeof num2 === 'number') {
return num1 + num2;
}
else {
return +num1 + +num2;
}
}
button.addEventListener("click", function () {
console.log(add(+input1.value, +input2.value));
});