1. nan的产生:
一个不能被解析的数字number('abc') // nannumber(undefined) // nan
失败的操作math.log(-1) // nanmath.sqrt(-1) // nanmath.acos(2) // nan
一个运算符为nannan + 1 // nan10 / nan // nan
2. 注意点
nan是唯一一个和自身不相等的值:
nan === nan // false
3. 如何辨别nan
我们可以使用全局函数isnan()来判断一个数值是不是一个非数字(并不是用来判断是不是nan这个值):
isnan(nan) // trueisnan(10) // false
为什么说isnan()不是用来判断是不是nan这个值的呢?因为isnan对非数字不起作用,它首先做的就是把这些值转换成数字,转换的结果可能为nan,然后函数会错误地返回true:
isnan('abc') // true
所以我们想确定这个一个值是为nan,可以使用以下两种方法:
方法一:将isnan()和typeof结合来判断function isvaluenan(value) { return typeof value === 'number' && isnan(value)}
方法二:值是否与本身不相等(nan是唯一有这样特征的值)function isvaluenan(value) { return value !== value}
【相关推荐:javascript视频教程、编程视频】
以上就是一文聊聊javascript中的nan的详细内容。
