为什么在JS中,isNaN(null)== false?

isNan()方法在JavaScript中用于检查是否存在未定义的值,或者可以说检查NaN对象。 

示例

要检查JavaScript日期是否有效,可以尝试运行以下代码-

<!DOCTYPE html>
<html>
   <body>
      <script>
         var date1, date2;

         date1 = new Date("2018/1/1");

         if( ! isNaN ( date1.getMonth() )) {
            document.write("Valid date1: "+date1);
         } else {
            document.write("<br>Invalid date1");
         }

         date2 = new Date("20181/1");

         if( ! isNaN ( date2.getMonth() )) {
            document.write("<br> Valid date2: "+date2);
         } else {
            document.write("<br>Invalid date2");
         }
      </script>
   </body>
</html>

isNaN(null)== false在语义上是正确的。这是因为null不是NaN。