Javascript isNaN验证始终返回TRUE,但在浏览器中为FALSE

Javascript isNaN验证始终返回TRUE,但在浏览器中为FALSE,javascript,validation,Javascript,Validation,所以我在做一个函数,它应该由10个数字组成一个块,但是如果它是一个字符串,用window.alert提示“cannotbestring” 因此,我正在使用console.log进行测试,以检查该值是否为NaN。它总是返回true,但如果我在浏览器中做同样的事情,它就是false,这就是让我挣扎的原因。谢谢你与我分享你的智慧 我一直在寻找答案,但没有成功。致以最良好的祝愿 btnCheck.addEventListener("click", divFunction); fu

所以我在做一个函数,它应该由10个数字组成一个块,但是如果它是一个字符串,用window.alert提示“cannotbestring”

因此,我正在使用console.log进行测试,以检查该值是否为NaN。它总是返回true,但如果我在浏览器中做同样的事情,它就是false,这就是让我挣扎的原因。谢谢你与我分享你的智慧

我一直在寻找答案,但没有成功。致以最良好的祝愿


btnCheck.addEventListener("click", divFunction);

function divFunction(){
  var number = Number(document.getElementById("number").value);
  console.log(isNaN(number.value)); //Why it always print true ? 
if(isNaN(number.value) === "true"){window.alert("CAN'T BE STRING")}else{
 document.getElementById("myDiv").innerHTML="";
  var i;
  for (i=0;i<10;i++){
    document.getElementById("myDiv").innerHTML+=number+"</br>";
  }
 }
}


<input type="text" id="number" placeholder="give me number"></input>
    </br>
      <button id="buttonCheck">Cyc</button>
    </br>
      <div id="myDiv"></div>

btnCheck.addEventListener(“单击”,divFunction);
函数divFunction(){
var number=number(document.getElementById(“number”).value);
console.log(isNaN(number.value));//为什么总是打印true?
if(isNaN(number.value)=“true”){window.alert(“不能是字符串”)}else{
document.getElementById(“myDiv”).innerHTML=“”;
var i;

对于(i=0;i您需要删除
.value
部分。请改为:

isNaN(数字)

因为您将
number
设置为输入值(不是元素),然后尝试从中获取
.value
。因为
number
已经是一个数字,所以它没有属性
。数字没有
属性-只需使用
isNaN(数字)
。另外,
isNaN
总是返回
true
false
,而不是字符串值。因此
isNaN(something)==“true”
将始终为false。亲爱的朋友,我删除了`if(isNaN(number.value)==“true”`中的“.value”,但不幸的是,我的函数仍然打印数字,或nan,但没有提示错误。@JLRishe さん 誠にありがとうございます。お世話になっております。よろしく亲爱的Francis,它仍然是一样的。因此console.log现在可以正确打印,但函数不会提示错误,正如@JLRishe提到的,您还需要删除
==“true
部分。因此您的if语句应该是
if(isNaN(number)){
它可以工作,非常感谢,尽管我仍然不理解它:-)