当前位置: 首页 >文章 > JavaScript-NaN
收藏
分享

JavaScript-NaN

举报李游Leo李游Leo发布于 2021-05-28773阅读0点赞
在ECMAScript中,任何数字除以0只会返回NaN,因此并不会影响代码的执行...

在数字中除了Infinity这个英文之外,还有个比较特殊的代表数字的英文NaN。NaN的非缩写为Not a Number,即不是一个数字,它是一个特殊的数值,它本身代表返回的数字并不是数值的情况,这样就可以有效的在JavaScript中避免错误了。因为在其他编程语言,任何数字处以0都会导致错误,造成代码的执行。但是在ECMAScript中,任何数字除以0只会返回NaN,因此并不会影响代码的执行。

不过NaN本身有两个非常寻常的特点。首先,NaN和任何内容的操作结果还会是NaN,所以在多步计算中一定要注意,不然结果可能就会因为这个特点变成NaN了。其次,NaN与任何内容都不想等,包括自己本身。例如:

不过针对NaN的这两个特点,ECMAScript还特别定义了isNaN()函数来帮助我们判断NaN值。这个函数可以接收一个参数,这个参数可以接受任何类型,然后这个函数可以帮助我们判断这个参数是否为所谓的NaN值。当它接受参数时,它会优先把这个值通过Number()方法转化为数值。如果最终可以转化为数值的话则返回false,而如果不能被转化的数值则会返回true。例如:

我们可以通过上述的例子看到,测试的第一个值本身是NaN,所以结果自然会返回true。然后测试了数字5和字符串29,返回结果都为false,因为字符串会通过系统默认的Number()方法,所以会变成数字,所以最终结果都不是NaN。Boolean值true本身可以转化为1,因此函数返回false。不过字符串“leo”不能被转化为数值,所以函数就会返回true了。

不过值得一提的是,isNaN()也可以适用于对象。在基于对象为参数调用isNaN()函数方法时,会优先调用对象的valueOf()方法,然后在确定该方法返回的值是否可以转为数值。如果不能,那么则基于这个返回值再调用toString()方法,再测试返回值。这个过程也是ECMAScript中内置函数和操作符的一般执行流程。



本文原创,未经作者允许不可转载!

更多内容,欢迎关注作者微信公众号:李游Leo老师前端讲堂!


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,637人)

电商海报设计训练营
距离开班仅剩10天66人已报名
【5月】零基础手绘插画训练营
距离开班仅剩10天52人已报名
【5月】零基础动态表情包创作训练营
距离开班仅剩27天15人已报名
猜你喜欢
架构师之路 - 业务领域建模

2021-04-27

小虎转载君 发表

架构师之路 - 业务领域建模
字符串的使用方法

2021-05-19

李游Leo 发表

字符串的使用方法
二叉树的垂序遍历

2021-08-09

小虎转载君 发表

二叉树的垂序遍历
JavaScript - Boolean类型

2021-05-11

李游Leo 发表

JavaScript - Boolean类型
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了36,588
并提交了234份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证