isNaN和Number.isNaN

这两者都是为了判断参数是否为NaN类型。

isNaN的实现原理是:通过Number()方法,尝试将参数转换成Number类型,如果成功返回false,如果失败返回true。

isNaN只是判断传入的参数是否能转换成数字,并不是严格的判断参数是否等于NaN。

而Number.isNaN()会判断传入的参数是否为数字类型(NaN也是特殊的数字类型)且是否严格的等于NaN (===)。

console.log(isNaN('123')) //fasle,字符串类型的123能转成数字,所以返回false
console.log(Number.isNaN('123')) //false,字符串类型的123不是NaN,所以返回false
console.log(Number.isNaN(123) // false
console.log(isNaN('NaN')) // true
console.log(isNaN('nAn')) // true
console.log(isNaN('测试')) //true  因为Number(字符串)会返回NaN
console.log(Number.isNaN('测试')) //false,字符串不是NaN,所以返回false
console.log(Number.isNaN(NaN)) //true

isFinite、Number.isFinite

两个方法都是为了判断参数是否为有限的。

当参数为正无穷(Number.POSITIVE_INFINITY 和 Infinity )、负无穷(Number.POSITIVE_INFINITY和-Infinity )、NaN。则返回false

isFinite、Number.isFinite的区别与上面一样,Number.isFinite默认参数为数字类型。而IsFinite会对参数转为数值类型再判断。

对于Number.isFinite()方法。必须满足以下两点,才返回true。

  • 参数是数值型,

  • 参数不是无穷大/小或者NaN

console.log(Number.isFinite('123'))// false
console.log(Number.isFinite('abc')) //fasle
console.log(Number.isFinite(NaN)) // false
console.log(Number.isFinite(1)) // true
 console.log(isFinite('123')) //trueconsole.log(isFinite('abc')) // fasle 因为Number('abc')是NaN
console.log(isFinite(NaN)) // false 同上
console.log(isFinite(-Infinity )) // false 因为Number(-Infinity)为-Infinity

注意

Number(null) // 0
Number('') // 0
console.log(isFinite(null ))  //true

isNaN、Number.isNaN、isFinite、Number.isFinite相关推荐

  1. js中isNaN、Number.isNaN,isFinite、Number.isFinite的区别

    判断是否是NaN的方法isNaN 全局作用域中,有个方法,叫isNaN,在判断数据的时候,会将数据做类型转换(可以判断字符串,布尔值等类型) ES6为了纠正数据类型转换的问题,提供了Number.is ...

  2. Js isNaN()和Number.isNaN()、isFinite() 和 Number.isFinite()

    isNaN()和Number.isNaN() 当我们向isNaN传递一个参数时,它的内部实现是:通过Number()方法,尝试将参数转换成Number类型,如果成功返回false,如果失败返回true ...

  3. ES6-11数值扩展:二进制和八进制、数值分隔符、Number.isFinite()、Number.isNaN()等

    1. 二进制和八进制 用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 // true// 非严格模式 (function ...

  4. 检测数据类型、小数点后保留后N位方法、数据类型转换、window对象的方法 、分支结构 (if单分支、if-else 双分支、多重if结构)isNaN() 与 Number.isN的区别

    目录 1.检测数据类型(typeof) 2.数据类型转换 转换为字符串类型 换为数字类型 其他类型转换为布尔值 小数点后保留后N位方法 3.window对象的方法 (window.可省略) 4.顺序流 ...

  5. Double和Float类型的max、min、isNaN、isFinite、isInfinite方法

    本文以Double为例,Float是相同的 普通的浮点计算 System.out.println(5 / 2); //2 System.out.println(5.0 / 2); //2.5 浮点数和 ...

  6. 【Antdv】input type=number去掉上下箭头、提示文字、鼠标滚轮

    数字输入框在项目中十分常用,但是有一些属性影响使用体验.解决方案如下: 1.整数文字提示 解决方法,将title="" title="" 2.鼠标滚轮会修改数值 ...

  7. 数据类型_Number、String、LIst、Tuple、Set、Dictionary——Number:整型(int)、浮点型(float)、复数 (complex)

    数据类型是一类值,每个值都只属于一种数据类型. Python3 中有六个标准的数据类型: Number(数字)包含:int.float.bool.complex(复数),bool 是 int 的子类. ...

  8. isNaN()与Number.isNaN()的区别

    1.isNaN() isNaN函数是用来确定一个值是否是NaN,可以在全局使用,返回值是一个布尔值true或false: //基础用法 isNaN(1) //false isNaN(NaN) //tr ...

  9. js中isNaN和Number.isNaN的区别

    背景 与 JavaScript 中其他的值不同,NaN不能通过相等操作符(== 和 ===)来判断 ,因为 NaN == NaN 和 NaN === NaN 都会返回 false. 因此,isNaN ...

最新文章

  1. 对标Bert?刷屏的GPT 2.0意味着什么
  2. 转载:如何区分空间参考、坐标系统、投影、基准面和椭圆体?
  3. sudo运行程序遇到的问题
  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 用AutoMapper搞定对象映射
  5. apache日志记录格式LogFormat参数说明
  6. Ninject之旅之十一:Ninject动态工厂(附程序下载)
  7. 稀疏表达:向量、矩阵与张量(中)
  8. Nginx限制对代理HTTP资源的访问速率
  9. 使用DOM4J解析XML及采用Schema校验的方法
  10. python比较两个数据库表_mysql如何比对两个数据库表结构的方法
  11. 哈佛机器人,学会了轻功水上漂
  12. 深入理解js构造函数
  13. 极客大学架构师训练营 系统架构 大型网站技术架构 维基百科、淘宝、新浪微博案例分析 第8课 听课总结
  14. 2022年下半年系统集成项目管理工程师(软考中级)报名条件
  15. 使用Reaver破解开启了WPS功能的wifi密码(wpa/wpa2)
  16. pla3d打印材料密度_FDM 3D打印机最常用的耗材PLA的密度 创想三维
  17. STM32 之十二 FLASH 使用详解 及 LL 库 FLASH 驱动实现
  18. 黑盒测试具体有哪些操作步骤?
  19. 推荐万维钢《万万没想到-用理工科思维理解世界》
  20. yigo基础学习笔记4_业务流程

热门文章

  1. 《Python数据分析与挖掘实战》Chapter8中医证型关联规则挖掘笔记
  2. [论文分享] Overcoming Catastrophic Forgetting in Incremental Few-Shot Learning by Finding Flat Minima
  3. Learning Without Forgetting的pytorch实现
  4. hadoop性能测试
  5. 深度学习研究基因组学
  6. 2022-04-14每日刷题打卡
  7. C# GDI 手绘图片转化为电子版处理
  8. 怎么在看视频时保持电脑屏幕不灭,干货到,WIN10如何设置电脑屏幕一直亮着
  9. 深度学习框架之Keras入门教程
  10. Floyd AcWing 854. Floyd求最短路