parseInt 在事件上的奇怪行为
Strange behaviour of parseInt on event
我有一个函数需要同时接受数字和事件。以防万一,我将从目标元素的属性中提取该数字。像这样...
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 将不等于(通过 ==、!=、=== 和 !==)与任何其他值进行比较——包括与另一个 NaN 值的比较。使用 Number.isNaN() 或 isNaN() 最清楚地确定一个值是否为 NaN。
详细解释请访问:-
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN
我有一个函数需要同时接受数字和事件。以防万一,我将从目标元素的属性中提取该数字。像这样...
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 将不等于(通过 ==、!=、=== 和 !==)与任何其他值进行比较——包括与另一个 NaN 值的比较。使用 Number.isNaN() 或 isNaN() 最清楚地确定一个值是否为 NaN。
详细解释请访问:-
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN