关于js的NaN
今天前端开发时遇到个问题,将字符串数据通过parseFloat()
转为浮点型数据。如果parseFloat()
的参数不为数字时,结果返回NaN
。发现parseFloat()
的结果为NaN
时,NaN != NaN
还是为true
。
原因
NaN
即 Not a Number,不是一个数字。返回的是一个无效的结果,不是一个确切的值。所以去做比较时,返回的结果为true
。
解决办法
可以使用Object.is(需要判断的参数, NaN)
来判断是否为NaN
。