如何检查某些东西是否为NaN并且它不等于字符串?

时间:2017-07-23 22:02:20

标签: javascript string

我正在尝试使用此代码并且它无法正常工作请求帮助!

以下是代码:

var test = "3";

function printIsNaN(value) {
  var bool = document.getElementById("booleanValue");
  if (isNaN(value) === true) {
    bool.style.color = "green";
    bool.innerHTML = "true";
  } else if (isNaN(value) === false) {
    bool.style.color = "red";
    bool.innerHTML = "false";
  }
}

printIsNaN(test);
<!DOCTYPE html>
<html lang="en-US">
<head>
  <meta charset="utf-8">
  <title>Stackoverflow Question</title>
  <script src="something.js"></script>
</head>
<body>
  <!-- START OF THE DOCUMENT -->
  <span id="booleanValue"></span>
</body>
</html>

谢谢,如果你能帮忙请!!!!!!!!

2 个答案:

答案 0 :(得分:0)

您可以使用ParseInt()将字符串更改为整数

    function printIsNaN(value) {
  var bool = document.getElementById("booleanValue");
  if (isNaN(parseInt(value))) {
    console.log("nope");
  } else if (!isNaN(parseInt(value))) {
    console.log("yep");
  }
}

希望这会有所帮助

答案 1 :(得分:0)

在ES6中,Number对象上有一个名为isNaN的函数,如果它是真NaN(数字而不是字符串),则测试该值

您可以像这样实现该功能:

if (!Number.isNaN) {
    Number.isNaN = function(n) {
        return n !== n;
    };
}

它依赖于NaN是唯一不等于自身价值的面孔。

来源:https://github.com/getify/You-Dont-Know-JS/blob/master/types%20%26%20grammar/ch2.md