js中isNaN和Number.isNaN的区别是什么

区别:Number.isNaN不存在类型转换的行为,而isNaN会尝试将参数转换成Number类型。isNaN只是判断传入的参数是否能转换成数字,并不是严格的判断是否等于NaN;而Number.isNaN判断传入的参数是否严格的等于NaN。

js中isNaN和Number.isNaN的区别是什么

推荐教程:《JavaScript视频教程》

isNaN

当我们向isNaN传递一个参数,它的本意是通过Number()方法尝试将这参数转换成Number类型,如果成功返回false,如果失败返回true。

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

例子:

Number('测试')

登录后复制

 因为没有将“测试”成功转换成Number类型,所以下面代码输出true

console.log(isNaN('测试')) //true

登录后复制

Number.isNaN

判断传入的参数是否严格的等于NaN(也就是 ===)。

那一般在什么情况下会用到Number.isNaN呢?

当两个变量进行运算时,我们可以使用Number.isNaN来判断它的值是否为NaN

console.log(Number.isNaN(1/'测试')); //输出true

登录后复制

两者的区别

Number.isNaN与isNaN最的区别是,Number.isNaN不存在类型转换的行为。

console.log(isNaN('测试')) //trueconsole.log(Number.isNaN('测试')) //false

登录后复制

上面代码中,都是传入字符串“测试”,但为什么结果不同?原因在于:

isNaN会通过Number方法,试图将字符串”测试”转换成Number类型,但转换失败了,因为 Number(‘测试’) 的结果为NaN ,所以最后返回true。

而Number.isNaN方法,只是严格的判断传入的参数是否全等于NaN( ‘测试’ === NaN) ,字符串当然不全等于NaN啦,所以输出false。

更多编程相关知识,请访问:编程教学!!

以上就是js中isNaN和Number.isNaN的区别是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2724648.html

(0)
上一篇 2025年3月7日 23:15:54
下一篇 2025年2月28日 14:48:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react可以做什么?

    react是一个JavaScript库,主要用于构建UI,可用于构建“可预期的”和“声明式的”Web用户界面;React能够构建那些数据会随时间改变的大型应用,并且能够提高开发效率。 React 起源于 Facebook 的内部项目,因为该…

    2025年3月7日
    200
  • JavaScript常见几种的内存泄漏

    javascript栏目教程介绍常见的内存泄漏。 前言1 介绍2 内存泄露的主要原因3 常见的内存泄露3.1 全局变量3.2 计时器3.3 多处引用3.4 闭包4 Chrome内存分析工具资料 前言 在阅读这篇博客之前,你或许需要具备一些J…

    2025年3月7日
    200
  • JavaScript算法之归并排序算法(详解)

    在本文中,我们学习 Merge Sort 背后的逻辑,并用 JavaScript 实现。最后,在空间和时间复杂度方面将归并排序与其他算法进行比较。 归并排序背后的逻辑 归并排序使用分而治之的概念对给定的元素列表进行排序。它将问题分解为较小的…

    2025年3月7日
    100
  • 避免在JS脚本中过多使用 if 语句,6种代替 if 的方法介绍

    推荐教程:《JavaScript视频教程》 最近在重构代码时,我发现早期的代码使用太多的 if 语句,其程度是我从未见过的。这就是为什么我认为分享这些简单的技巧是非常重要的,这些技巧可以帮助我们避免过多的使用 if 语句。 接下来会介绍6种…

    2025年3月7日
    200
  • JavaScript如何禁止刷新页面

    JavaScript禁止刷新页面的方法:1、禁用F5刷新,代码为【if (event.keyCode == 116) 】;2、禁止右键弹出菜单,代码为【document.oncontextmenu = function ()】。 本教程操作…

    2025年3月7日
    200
  • javascript介绍前端安全知多少

    今天javascript栏目介绍前端安全。 前言 Hello,AV8D~今天我们要分享的主题是前端Web安全。web安全的重要性不言而喻,是所有互联网企业都绕不开的话题。 在web前端领域,尽管浏览器已经在系统层面帮我们做了诸多的隔离和保护…

    2025年3月7日 编程技术
    200
  • 详解javascript中逻辑运算符

    推荐教程:《JavaScript视频教程》 逻辑赋值是对现有数学和二进制逻辑运算符的扩展。我们先复习一下,然后看看把它们结合在一起能得到什么。 首先,我们来看下 JS 中条件运算符与无条件运算符之间的区别。 无条件 vs 有条件 数学运算符…

    2025年3月7日
    200
  • 深入了解JavaScript中的null

    推荐教程:《JavaScript视频教程》 JavaScript有2种类型:基本类型(string, booleans number, symbol)和对象。 对象是复杂的数据结构,JS 中最简单的对象是普通对象:一组键和关联值: let …

    2025年3月7日
    200
  • 怎样用 TensorFlow.js 创建基本的 AI 模型?

    在本文中我们来研究怎样用 TensorFlow.js 创建基本的 AI 模型,并使用更复杂的模型实现一些有趣的功能。我只是刚刚开始接触人工智能,尽管不需要深入的人工智能知识,但还是需要搞清楚一些概念才行。 什么是模型? 真实世界是很复杂的,…

    2025年3月7日 编程技术
    200
  • settimeout和setinterval之间有什么区别?

    区别:setTimeout只运行一次,也就是说设定的时间到后就触发运行指定代码,运行完后即结束;而etinterval是一直循环运行下去,即每到设定时间间隔就触发指定代码,要想停止,需要使用clearInterval()函数。 settim…

    2025年3月7日
    200

发表回复

登录后才能评论