我不知道如何在 javascript 的 if 命令中使用“NaN”

i don't know how to use ' NaN ' in javascript's if command

大家好,我知道这段代码太简单了,但我是 javascript 的新手,我仍在学习它。 此代码从用户那里获取一个值,然后显示一个答案,但该值是否为数字并不重要,它只是说 = 它是一个数字

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <!--Javascript starts-->
    <script>
        var age = prompt("How old are you ?","18");
           if(age == NaN)
           {
               alert("its not a number");
           }else
           {
               alert("its a number");
           }  
    </script>
        <!--End of Javascript-->

    </body>
</html>

NaN 不等于 javascript 中的任何值,甚至不等于其自身。

prompt returns 一个字符串,如果你想检查它是否是一个数字字符串,检查 age 是否可以使用 Number() 转换成数字。

var age = prompt("How old are you ?","18");

if(age != '0' && !Number(age)) {    // extra check for '0'
    alert("its not a number");
} else {
    alert("its a number");    
}

上面代码中应牢记的几个极端情况:

  1. '0' 是一个 falsey 值,因此如果 age'0',则此条件 !Number(age) 的计算结果为真。为防止这种情况,请添加额外检查以确保 age 不是 '0'
  2. 空字符串 '' 当被强制转换为数字时计算结果为 0,因此条件 !Number(age) 将正确计算为真,而 isNan(age) 将计算为假,这将导致 else 块的执行。

输入 age 将是一个字符串。请改用 isNaN()。这将按您的预期工作。

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <!--Javascript starts-->
    <script>
        var age = prompt("How old are you ?","18");
           if(isNaN(age))
           {
               alert("its not a number");
           }else
           {
               alert("its a number");
           }  
    </script>
        <!--End of Javascript-->

    </body>
</html>

您应该了解 isNaN 函数。

<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <!--Javascript starts-->
  <script>
    var age = prompt("How old are you ?", "18");
    if (isNaN(age)) {
      alert("its not a number");
    } else {
      alert("its a number");
    }
  </script>
  <!--End of Javascript-->

</body>

</html>

你可以使用 isNaN() 吗?

只有NaN,没有什么等于NaN,包括它自己。

var num = NaN;
console.log(num === num); // false
(~~age > 0) ? alert('valid') : alert('invalid')