首页 > 其他分享 >isNaN 和 Number.isNaN 函数的区别?

isNaN 和 Number.isNaN 函数的区别?

时间:2024-06-23 22:58:43浏览次数:28  
标签:isNaN false log NaN Number console 函数

对于可以被Number转换为数值的值x,那么isNaN(x)就是false如果不可以被Number转换为数值的值y,那么isNaN(y)就是true

//Number.isNaN与isNaN最的区别是,Number.isNaN不存在类型转换的行为。
console.log(isNaN('测试')) //true
console.log(Number.isNaN('测试')) //false

上面代码中,都是传入字符串“测试”,但为什么结果不同?原因在于:
isNaN会通过Number方法,试图将字符串"测试"转换成Number类型,但转换失败了,因为 Number(‘测试’) 的结果为NaN ,所以最后返回true。
而Number.isNaN方法,只是严格的判断传入的参数是否全等于NaN( ‘测试’ === NaN) ,字符串当然不全等于NaN啦,所以输出false。

总结:如果能转换成Number类型,isNaN返回的就是false,如果不能反之
Number.isNaN直接判断是否严格等于NaN,不同返回false

console.log(isNaN(NaN));//true
console.log(Number.isNaN(NaN));//true
console.log(isNaN("1"));//false
console.log(isNaN([]));//false
console.log(isNaN({}));//true
console.log(Number.isNaN(NaN));//true
console.log(Number.isNaN({}))//false

标签:isNaN,false,log,NaN,Number,console,函数
From: https://blog.csdn.net/weixin_64534765/article/details/139908201

相关文章

  • 【优化分配】粒子群算法求解机组负荷分配优化问题(目标函数:最优成本)【含Matlab源码 478
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • [题解]CF1066E Binary Numbers AND Sum
    思路考虑对于每一个\(a\)上数位进行分析。令\(a_i\)表示\(a\)在二进制表示中从左往右数的第\(i\)位上的数字,\(b_i\)同理。分类讨论一下\(a_i\)的取值对于答案的贡献:如果\(a_i=0\),对于这一位无论如何都不会拥有贡献。如果\(a_i=1\),因为\(b\)会向右移,所以能......
  • 【操作系统】信号Signal超详解|捕捉函数
    ......
  • API-定时器-间歇函数
    学习目标:掌握定时器-间歇函数学习内容:定时器-间歇函数案例定时器-间歇函数:网页中经常需要一种功能:每隔一段时间需要`自动`执行一段代码,不需要我们手动去触发。例如:网页中的倒计时。要实现这种需求,需要定时器函数。定时器函数有两种,我们先讲间歇函数。开启定时......
  • 函数与模块
                     ......
  • C语言之IO流函数
    目录1IO函数1.1错误函数1.1.1检测流上的错误函数ferror1.1.2复位错误标志函数clearerr1.2结束函数1.2.1检测文件结束符函数feof1.2.2清除文件缓冲区函数fflush1.3处理文件函数1.3.1文件的打开与关闭函数fopen,fclose1.3.2替换文件中数据流函数freopen1.3.3文件指针定......
  • Python进阶学习笔记-函数篇
    函数的特殊参数#/前的参数只能是位置参数,*后面的只能是关键字参数,之间的不限参数类型deffunc(a,b,/,c,*,d,e):print(a,b,c,d,e)func(1,2,3,d=4,e=5)func(1,2,c=3,d=4,e=5)#a,b不能以关键字形式传参,d,e只能以关键字参数传参#可变参数*argsdef......
  • [题解]CF245H Queries for Number of Palindromes
    思路定义\(dp_{i,j}\)表示区间\([i,j]\)中回文串的数量。那么,不难得出状态转移方程\(dp_{i,j}=dp_{i-1}+f_{i,j}\)。(其中\(f_{i,j}\)表示左端点大于等于\(i\),右端点为\(j\)的回文串数量)由此,现在问题转变为了如何求\(f_{i,j}\)。如果我们在求出了\(f_{i+1,j}......
  • [题解]CF622D Optimal Number Permutation
    思路首先考虑答案下界,因为\((n-i)\)和\(|d_i+i-n|\)均大于等于\(0\),所以它们相乘一定大于等于\(0\)。于是考虑能不能构造出结果为\(0\)。显然当\(i=n\)时,无论\(d_i\)的值是什么,式子的结果为\(0\)。因此只需要考虑\(i\in[1,n)\)的情况。因为要使结果为......
  • Java学习 - MySQL存储过程、函数和触发器练习实例
    存储过程存储过程是什么存储过程是一组已经编译好的SQL语句存储过程优点有什么安全性能高提高代码复用性创建存储过程的语法DELIMITER$#不能加分号CREATEPROCEDURE存储过程名(IN|OUT|INOUT参数名参数类型)BEGIN存储过程语句块END;$DELIMIT......