“累加”按钮不显示';我不能在javascript中工作

“累加”按钮不显示';我不能在javascript中工作,javascript,Javascript,我用javascript制作了一个简单的计算器,但是+按钮不起作用,它只是将数字显示在一起 这是我的密码: <script> function calc(operator) { var x = document.getElementById("inp1").value; var y = document.getElementById("inp2").value; var z = 0; switch (operator) { case

我用javascript制作了一个简单的计算器,但是
+
按钮不起作用,它只是将数字显示在一起

这是我的密码:

<script>
function calc(operator) {
    var x = document.getElementById("inp1").value;
    var y = document.getElementById("inp2").value;
    var z = 0;

    switch (operator) {
        case "+":
        z = x + y;
        break;
        case "-":
        z = x - y;
        break;
        case "*":
        z = x * y;
        break;
        case "/":
        z = x / y;
        break;
    }
    document.getElementById("result").innerHTML=z;
}
</script>

函数计算(操作员){
var x=document.getElementById(“inp1”).value;
var y=document.getElementById(“inp2”).value;
var z=0;
开关(操作员){
格“+”:
z=x+y;
打破
案例“-”:
z=x-y;
打破
案例“*”:
z=x*y;
打破
案例“/:
z=x/y;
打破
}
document.getElementById(“结果”).innerHTML=z;
}
您可以这样使用:

z= +x + +y; // + is prefixed to convert input into number
var x = document.getElementById("inp1").value*1;
var y = document.getElementById("inp2").value*1;

x
y
变量包含字符串。将它们解析为数字:

var x = parseFloat(document.getElementById("inp1").value);
var y = parseFloat(document.getElementById("inp2").value);
它恰好适用于其他运算符,因为字符串没有减法、乘法或除法,它指出它必须将字符串转换为数字

var x=document.getElementById("inp1").value;
var y=document.getElementById("inp2").value;
将这些文本框中的值作为字符串返回

在字符串上使用
+
运算符时,它将连接值。如果对数字使用相同的运算符,它将添加值

您需要使用
parseInt
函数使用以下方法之一将文本框值解析为整数

var x=parseInt(document.getElementById("inp1").value);
var y=parseInt(document.getElementById("inp2").value);
然后做
z=x+y我建议这样做,因为所有操作,而不仅仅是加法,都将在整数上执行


或者简单地改变
z=z+y
看起来像
z=parseInt(x)+parseInt(y)

将字符串转换为数字的快速方法是使用一元+运算符

z = +x + +y

这将您的“字符串”数字转换为整数,您也可以使用
parseFloat()
如果您有浮点数

您可以这样使用:

z= +x + +y; // + is prefixed to convert input into number
var x = document.getElementById("inp1").value*1;
var y = document.getElementById("inp2").value*1;
此刻的x是数字


对我来说更干净

开始时读取的值是字符串。要获取数字,请使用
parseInt()
parseFloat()
。可能重复@ViktorBahtev dude我甚至不知道问题出在哪里。可能重复@MelodyHajian你写的“我甚至不知道问题出在哪里”。别担心,“重复”标志不是对你问题的批评。相反,从您的问题到规范问题的链接允许用户提供适用于这两个问题的答案。这是
*1
的唯一答案。它有什么作用?(我猜它将字符串乘以1,然后将其转换为整数。)既然您推荐这种方法(我也同意它看起来不错),我建议您将其作为标准问题的答案发布,当乘以1(*1)时,转换为数字,而不是整数,这是不同的。