使用if语句检查是否存在NaN

use*_*813 5 javascript if-statement

我从表单中获取数值.然后我检查一下它是否是NaN.如果是数字,我想将该值设置为变量.问题是,当我输入有效数字时,我仍然会收到警报,但数字不会传递给变量"date".我应该如何修改我的陈述,以便当它是有效数字时我可以将其分配给变量日期?

var adate = document.getElementById("dueDate").value;    

    if ( adate == NaN || " ") {
    alert("Please enter a due date");
    return;
    }

    else {
    var date = (new Date()).setDate(adate);
    }

    processDate(date);
Run Code Online (Sandbox Code Playgroud)

Tan*_*.7x 15

使用Javascript的isNaN()函数.

根据IEEE的标准,检查与NaN的相等性总是错误的.决定这一点的IEEE-754委员会成员Stephen Canon 在这里一个很好的答案.


ben*_*tah 9

看起来很奇怪,NaN !== NaN.

if (adate !== adate || adate !== " ") {
  //...
}
Run Code Online (Sandbox Code Playgroud)

isNaN功能在很多情况下都有效.不过,有一个很好的例子可以说它已被打破.

解决这个问题的一个好方法是:

MyNamespace.isNaN = function (x) {
  return x !== x;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以使用if( isNaN(adate))

祝你好运