函数add(num1,num2)不起作用?

时间:2014-01-30 01:07:07

标签: javascript

我有一个简单的加法计算器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;
    }
}

4 个答案:

答案 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));
});