当Javascript将数字输入解释为字符串时,我应该怎么做?

当Javascript将数字输入解释为字符串时,我应该怎么做?,javascript,string,variables,numbers,Javascript,String,Variables,Numbers,在我创建的几个页面上,它向用户请求一个数字输入。问题是Javascript可能会将此输入解释为字符串而不是数字。比如说, var x = document.getElementById("inputx").value; var y = document.getElementById("inputy").value; var z = x+y; document.getElementById("outputParagraph").inner

在我创建的几个页面上,它向用户请求一个数字输入。问题是Javascript可能会将此输入解释为字符串而不是数字。比如说,

var x = document.getElementById("inputx").value;
var y = document.getElementById("inputy").value;
var z = x+y;
document.getElementById("outputParagraph").innerHTML = z;
因此,如果用户输入2和3,我希望输出5,但它可能返回23。这并不总是发生,但我没有注意到任何模式

通常,我会做一些无害的数学运算来解决这个问题,比如乘以1,或者做一个变量++后跟一个变量-。它总是有效的。有时我会创建一个完整的函数来执行此解决方案,因为代码的几个部分都需要它:


我的问题是:有没有更简单、更优雅的方法来解决这个问题?

要对来自DOM的字符串进行编号,可以使用
+

var x=+document.getElementById(“inputx”).value;
变量y=+document.getElementById(“inputy”).value;
var z=x+y;
document.getElementById(“output段落”).innerHTML=z;

您可以将字符串解析为int。Her是指向MDN文档的链接:


使用eval函数,此函数将字符串数字转换为数字并计算结果

    z=eval(x+y)

这是正确的答案。使用
parseInt
作为另一个答案是过分的。它奏效了!非常感谢你!您是否真的建议直接
eval
ing用户输入?对于像转换为数字这样简单的事情?对不起,我不明白你们到底想做什么?若你们想简单地添加两个数字类型的字符串,eval是一个不错的选择!如果输入不是numper,它将把东西转换成数字。执行任意JavaScript代码。只要用户输入numbers eval和numbers@user4642212有效,这条建议绝对不能避免,甚至不起作用
x+y
仍然执行字符串连接;不会神奇地追溯加法的求值。的副本。使用
及其
值asnumber
属性或简单地使用。
var x = parseInt(document.getElementById("inputx").value);
    z=eval(x+y)