Javascript 无法让操作员工作

Javascript 无法让操作员工作,javascript,Javascript,我在w3school.com上玩,虽然我可以让诸如*、/之类的运算符工作,但我不能让加法或减法运算符工作 例如,在链接中: var x = document.getElementById("myNumber").value; var y = x * 2 document.getElementById("demo").innerHTML = y; 将得到x乘以2的结果。但是当我尝试使用 + or - 结果是x加2。如果x为2,则如下所示 22 x是否被视为对象?如注释中所述,x是一个字符串,

我在w3school.com上玩,虽然我可以让诸如*、/之类的运算符工作,但我不能让加法或减法运算符工作

例如,在链接中:

var x = document.getElementById("myNumber").value;
var y = x * 2
document.getElementById("demo").innerHTML = y;
将得到x乘以2的结果。但是当我尝试使用

+ or -
结果是x加2。如果x为2,则如下所示

22

x是否被视为对象?

如注释中所述,x是一个字符串,因此+运算符将字符串2添加到x字符串中。尝试将其解析为整数以安全地执行数学运算

var x = parseInt(document.getElementById("myNumber").value, 10);
var y = x + 2
document.getElementById("demo").innerHTML = y;
不,x是一个字符串

var input=document.querySelector'input'; var值=输入值; console.logvalue,值的类型;
x是一个字符串。x+2执行字符串连接。但是x-2应该可以正常工作。x被视为一个字符串。试着将var x=parseIntdocument.getElementByIdmyNumber.value设置为-发生的是它将一个字符串与加号连接起来。我猜您所说的不使用它的说法是不正确的。当左边是一个字符串时,+运算符会连接。@MikeMcCaughan:不管哪一边。如果一个操作数是字符串,则执行串联。是的,我的意思是说字符串。不知道我为什么要放对象,lolLet我们不要忘记var value=+input.value+2;: