Javascript 为什么每次都给我绳子?

Javascript 为什么每次都给我绳子?,javascript,html,Javascript,Html,我从输入标签得到输入,但无论我在输入中写什么,它都会识别为字符串值,所以我不能使用我的条件 第二个问题是,如果我输入“ddd”作为第一个输入,输入“111”作为第二个输入,然后按下按钮,控制台中会显示NaN。我想显示警惕而不是这个。我如何纠正这些错误 函数addFunc(){ var x=document.getElementById(“num1”).value; var y=document.getElementById(“num2”).value; if(typeof x==“string

我从输入标签得到输入,但无论我在输入中写什么,它都会识别为字符串值,所以我不能使用我的条件

第二个问题是,如果我输入“ddd”作为第一个输入,输入“111”作为第二个输入,然后按下按钮,控制台中会显示NaN。我想显示警惕而不是这个。我如何纠正这些错误

函数addFunc(){
var x=document.getElementById(“num1”).value;
var y=document.getElementById(“num2”).value;
if(typeof x==“string”| typeof y==“string”){
var结果=parseInt(x)+parseInt(y);
控制台日志(结果);
}否则{
警告(“输入错误!”);
}
}

添加

输入字段的值始终是字符串。尝试使用以确定是否正确解析了十进制数:

函数addFunc(){
var x=parseInt(document.getElementById(“num1”).value);
var y=parseInt(document.getElementById(“num2”).value);
如果(!isNaN(x)&&!isNaN(y))
{
var结果=x+y;
控制台日志(结果);
}
否则{
警告(“输入错误!”);
}
}

因为“DDDD”是一个字符串。检查它是否不是一个数字。document.getElementById(“num1”)。值将始终返回字符串。在输入框中键入什么并不重要,它始终是一个文本。要避免NaN,必须使用
isNaN()
函数执行NaN检查。第一次输入可以输入1e,第二次输入可以输入11,然后观察结果吗?
parseInt()
将在解析之前尝试删除所有非整数字符。这不是你想要的吗?