gpt4 book ai didi

javascript - 如何可靠地测试某个值是否等于 NaN?

转载 作者:行者123 更新时间:2023-12-02 16:43:10 25 4
gpt4 key购买 nike

我只知道使用 isNaN 来测试一个值是否等于 NaN。真的可靠吗?

最佳答案

NaN 属性表示“不是数字”的值。此特殊值是由于无法执行的操作而产生的,因为操作数之一是非数字(例如“abc”/4),或者因为操作的结果是非数字(例如尝试除以)为零)。

虽然这看起来很简单,但 NaN 有一些令人惊讶的特征,如果人们没有意识到这些特征,可能会导致令人头疼的错误。

一方面,虽然 NaN 的意思是“不是数字”,但不管你信不信,它的类型是 Number:

console.log(typeof NaN === "number");  // logs "true"

此外,NaN 可以与任何事物进行比较——甚至可以与它本身进行比较! – 错误:

console.log(NaN === NaN);  // logs "false"

测试数字是否等于 NaN 的半可靠方法是使用内置函数 isNaN(),但即使使用 isNaN() is an imperfect solution.

更好的解决方案是使用 value !== value,只有当值等于 NaN 时才会产生 true。此外,ES6 提供了一个新的 Number.isNaN() 函数,该函数与旧的全局 isNaN() 函数不同且更可靠。

关于javascript - 如何可靠地测试某个值是否等于 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com