美文网首页
Javascript 中如何判断值为 NaN

Javascript 中如何判断值为 NaN

作者: Ashton | 来源:发表于2023-01-19 11:21 被阅读0次

0x01 不期而遇的 NaN

当我们的某个计算无法得到数字结果时,我们会和 NaN 不期而遇。比如:

var divisionByStr = 42 / "str";

// Outputs: NaN
console.log(divisionByStr);

当我们使用 parseInt 或 parseFloat 时也比较容易碰到 NaN。比如:

var helloParse = parseInt("hello")

// Outputs: NaN
console.log(helloParse)
var infiniteParse = parseInt(2/0)

// Outputs: NaN
console.log(infiniteParse)

0x02 如何判断结果是否为 NaN

要判断某个计算结果是否为 NaN,很自然的就会想去用下面的方式:

var infiniteParse = parseInt(2/0)
var equalsNaN = (infiniteParse === NaN)

// Outputs: false
console.log(equalsNaN);

不过结果和预期的并不一致。

NaN 和它自己并不相等

还有其他办法么?

网上可以找到的办法通常是用 isNaN

var infiniteParse = parseInt(2/0)
var valueIsNaN = isNaN(infiniteParse)

// Outputs: true
console.log(valueIsNaN);

貌似这个方式确实可行耶。

不过,看看下面的代码,也许你会稍微有点儿不淡定

var isJokeNaN = isNaN("Joke");

// Outputs: true
console.log(isJokeNaN);

貌似 isNaN 并不是真的判定一个值是不是 NaN,而是判断一个值是否能转换为数字。

还有其它办法么?

还记得么?NaN 不等于它自己,这个在 javascript 中可是独一份的存在。是否可以利用这个特性呢?

var infiniteParse = parseInt(2/0)
var valueIsNaN = infiniteParse !== infiniteParse

// Outputs: true
console.log(valueIsNaN);

嗯,貌似可以,先就这么干了!

相关文章

网友评论

      本文标题:Javascript 中如何判断值为 NaN

      本文链接:https://www.haomeiwen.com/subject/rqqqhdtx.html