isNaN 和 Number.isNaN 函数的区别?

文章目录

  • isNaN 和 Number.isNaN 函数的区别?
    • isNaN
    • Number.isNaN
    • 二者对比

isNaN

该函数接收一个参数,可以是任意数据类型,然后判断这个参数是否“不是数值”。

把一个值传给isNaN()后,该函数会尝试把它转换为数值。某些非数值的值可以直接转换成数值,如字符串"10"或布尔值。任何不能转换为数值的值都会导致这个函数返回true。

console.log(isNaN(NaN)); // true
console.log(isNaN(10)); // false,10 是数值
console.log(isNaN("10")); // false,可以转换为数值10
console.log(isNaN("blue")); // true,不可以转换为数值
console.log(isNaN(true)); // false,可以转换为数值1

Number.isNaN

函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

console.log(Number.isNaN(NaN));//true
console.log(Number.isNaN("10"));//false
console.log(Number.isNaN(10));//false

二者对比

console.log(Number.isNaN("blue"))//false
console.log(isNaN("blue"));//true

对于字符串blue,本质上我们是想判断传入的参数是否为NaN,但是用 isNaN 函数,判断结果为真,所以说 isNaN函数判断 NaN不够准确。

【JavaScript】isNaN 和 Number.isNaN 函数的区别?相关推荐

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

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

  2. isNaN、Number.isNaN、isFinite、Number.isFinite

    isNaN和Number.isNaN 这两者都是为了判断参数是否为NaN类型. isNaN的实现原理是:通过Number()方法,尝试将参数转换成Number类型,如果成功返回false,如果失败返回 ...

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

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

  4. isNaN 和 Number.isNaN 函数的区别?

    函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断. 函数 Number.isNaN ...

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

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

  6. Javascript isNaN 与Number.isNaN

    isNaN:先执行Number()强类型转换,能转换的,则isNaN 返回False,反之,返回true Number.isNaN() 只有NaN 返回true,其它都是false,所以可以看作严格判 ...

  7. JavaScript中search和match函数的区别

    记得以前还在学校的时候,第一次接触 JavaScript 编程,算是第一种编程入门语言吧,总是分不清 search 和 match 这两个函数的区别,好不容易弄明白了,到了考试的时候又混淆了,唉!气. ...

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

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

  9. isnan java_从 Number.isNaN 与 isNaN 的区别说起 例子

    例子 大家先看一看下面这个例子, isNaN(NaN); isNaN('A String'); isNaN(undefined); isNaN({}); Number.isNaN(NaN); Numb ...

最新文章

  1. 浓烟滚滚!某市联通集体断网,谁的锅?
  2. 关于.cpp文件包含另一个.cpp文件出错的原因以及解决办法
  3. Faster RCNN总结
  4. html引入jquery_jQuery
  5. 应用程序错误 应用程序发生异常w3wp.exe
  6. 布局文件中出现的错误
  7. Mobile Phone Network CodeForces - 1023F(并查集lca+修改环)
  8. 98版五笔字型实用学习教程
  9. [译] Vue 最黑暗的一天
  10. Python的函数理解外传
  11. 隐藏专杀工具文件夹病毒专杀工具
  12. mysql错误:Subquery returns more than 1 row
  13. K2 重磅出击,构建财务共享中心方案,促进企业标准化
  14. Ubuntu 系统中网络总是断掉重新连接
  15. 常用的Java转义字符
  16. 实现QQ音乐项目的一些技术点jQuery,html5
  17. 如何在elementUi动态表格table中翻译字典值。vue通用方案
  18. python应用之复习计划生成器
  19. 【STM32】基于STM32F103C8T6的水质检测系统设计(声光报警、多级菜单)
  20. C语言printf()的用法

热门文章

  1. 生物信息学【3】:相关理论方法
  2. mysql如何开启慢查询_MySQL如何开启慢查询 MySQL开启慢查询方法
  3. 《惢客创业日记》2019.09.26(周四) 高龄创业者的健康博弈(十六)
  4. vue h5页面获取手机设备信息
  5. Android 手机
  6. 实验06 组件图部署图和包图
  7. 流式计算-Storm基本介绍
  8. Python爬虫——Proxy SwitchyOmega安装和使用
  9. 给excel中添加列和值
  10. laradock 安装php扩展,laradock中安装Laravel Dusk详解