资讯专栏INFORMATION COLUMN

isNaN的理解

wupengyu / 3757人阅读

摘要:对它的定义其实非常奇怪,非数值,一个不是数字的数值。这个数值用来表示本来用来返回数字的操作未返回数字的情况。有这样的特点所有数值类型除以减去乘以非数值类型,都返回。不等于任何值,包括自身。的参数会被尝试转换为类型。

相信有学过JavaScript的同学都对isNaN不会陌生,它的作用是判断当前值是否能转换为数字的重要工具。

在介绍isNaN函数前,我们先来说说NaN。

NaN

NaN(not a number)是Number的一个特殊数值。对它的定义其实非常奇怪,非数值,一个不是数字的数值。这个数值用来表示本来用来返回数字的操作未返回数字的情况。

NaN有这样的特点:

所有数值类型除以/减去/乘以非数值类型,都返回NaN。

NaN不等于任何值,包括自身。(NaN != NaN)

注:Boolean和Null能转换成Number类型,所以能正确返回数字。

isNaN()

isNaN()接收一个参数,这个参数可以是任意类型。如果这个参数可以被转换为Number类型,则返回false,否则返回true

isNaN()的参数会被尝试转换为Number类型。

如果参数为[]""truefalsenull会被转换为数字,结果返回false。

注:当传入的参数为一个对象时,isNaN()会尝试调用valueOf()方法,来判断是否可以转换为数值,如果不能,还会再调用toString()方法,来继续判断是否可以转换为数值。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95691.html

相关文章

  • 深入理解ES6(三)(字符串扩展)

    摘要:字符串的扩展一字符串的遍历器接口为字符串添加了遍历器接口,使得字符串可以被循环遍历。返回布尔值,表示参数字符串是否在源字符串的头部。三方法返回一个新字符串,表示将原字符串重复次。如果模板字符串中的变量没有声明,将报错。 字符串的扩展 一、 字符串的遍历器接口 ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。 for (let codePoint of foo...

    Steve_Wang_ 评论0 收藏0
  • 深入理解ES6(三)(字符串扩展)

    摘要:字符串的扩展一字符串的遍历器接口为字符串添加了遍历器接口,使得字符串可以被循环遍历。返回布尔值,表示参数字符串是否在源字符串的头部。三方法返回一个新字符串,表示将原字符串重复次。如果模板字符串中的变量没有声明,将报错。 字符串的扩展 一、 字符串的遍历器接口 ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。 for (let codePoint of foo...

    tainzhi 评论0 收藏0
  • js懵圈之强等(===)弱等(==)衍生出类型转化、NaN、getElement*和querySe

    摘要:无关紧要的开头作为一个年轻的前端从业者,近期趾高气昂的去各种面试,抱着找虐心态去单挑的结果就是被各种面试题晃断脚踝并被射,然后开始质问自己对的掌握为何如此浅薄,为何当初不好好学世界上最好的语言。 /*===无关紧要的开头start===*/作为一个年轻的前端从业者,近期趾高气昂的去各种面试,抱着找虐心态去单挑的结果就是被各种面试题晃断脚踝并被yan射,然后开始质问自己对js的掌握为何如...

    afishhhhh 评论0 收藏0
  • 关于NaN

    摘要:它有两个重要的性质与任何值都不相等,包括自身任何涉及的操作都会返回。关于是对象的一个方法,比较诡异的是并不是判断参数本身是不是,而是判断是不是。返回的结果是一个布尔值。先用转换参数,再判断转换后的结果是不是不等于自身。 昨天看到一个面试题:怎样实现 isNaN() 方法? 细细研究了一下 NaN,发现这个东西不常用,坑却异常多,颇有 茴 字有几种写法的感觉,这里记录下总结的东西吧。 ...

    jubincn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<