加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JS中的NaN产生是怎样 如何鉴别NaN

发布时间:2023-08-09 12:53:09 所属栏目:语言 来源:
导读:这篇文章主要介绍了“JS中的NaN产生是怎样,如何辨别NaN”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS中的NaN产生是怎样,如何辨别NaN文章都会有所收获,下面我们一起

这篇文章主要介绍了“JS中的NaN产生是怎样,如何辨别NaN”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS中的NaN产生是怎样,如何辨别NaN文章都会有所收获,下面我们一起来看看吧。

JavaScript中,NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。

1. NaN的产生:

一个不能被解析的数字

Number('abc') // NaN

Number(undefined) // NaN

登录后复制

失败的操作

Math.log(-1) // NaN

Math.sqrt(-1) // NaN

Math.acos(2) // NaN

登录后复制

一个运算符为NaN

NaN + 1 // NaN

10 / NaN // NaN

登录后复制

2. 注意点

NaN是唯一一个和自身不相等的值:

NaN === NaN // false

登录后复制

3. 如何辨别NaN

我们可以使用全局函数isNaN()来判断一个数值是不是一个非数字(并不是用来判断是不是NaN这个值):

isNaN(NaN) // true

isNaN(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

}

关于“JS中的NaN产生是怎样,如何辨别NaN”的内容今天就到这,感谢各位的阅读,大家可以动手实际看看,对大家加深理解更有帮助哦。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章