事件上parseInt的奇怪行为

我有一个需要同时接受数字和事件的函数。如果发生事件,我将从目标元素的属性中提取该数字。像这样...

function f(num) {
    if(parseInt(num) == NaN) {
        num = num.target.num
    }
    // Do something with num
}

parseInt(event)的结果为NaN。但是奇怪的是,parseInt(event) == NaNparseInt(event)===NaN的结果是false

有人可以解释这里发生了什么吗?

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>


<button onclick="f()">Click me</button>
<p>parseInt(event): <span id="a"></span></p>
<p>parseInt(event)==NaN: <span id="b"></span></p>

<script>
function f(event){
  document.getElementById("a").innerHTML = parseInt(event)
  document.getElementById("b").innerHTML = (parseInt(event)==NaN)
}
</script>
</body>

</html>

iCMS 回答:事件上parseInt的奇怪行为

NaN将不相等(通过==,!=,===和!==)与任何其他值(包括与另一个NaN值)进行比较。使用Number.isNaN()或isNaN()最清楚地确定一个值是否为NaN。

有关详细说明,请访问以下网站:-

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN

本文链接:https://www.f2er.com/2277501.html

大家都在问