【发布时间】:2020-09-12 03:39:17
【问题描述】:
我有一个需要同时接受数字和事件的函数。如果发生事件,我将从目标元素的属性中提取该数字。像这样的...
function f(num) {
if(parseInt(num) == NaN) {
num = num.target.num
}
// Do something with num
}
parseInt(event) 的结果是NaN。但奇怪的是parseInt(event) == NaN 或parseInt(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>
【问题讨论】:
-
不要用
==测试NaN,改用isNaN()(link to doc)
标签: javascript parseint