- 时间:2022-07-16 00:22 编辑: 来源: 阅读:284
- 扫一扫,手机访问
摘要:JS素养:你不知道的伊斯南()
<源码交易>
分类原始类型:数字、字符串、布尔、空、未定义、符号(ES6新增)引用类型:对象(数组、数据、正则...),函数原类型numberisNaN用于判断NaN。先尝试将参数强制转换成数字,返回布尔基本概念:isNaN()函数用于确定一个值是否可以NaN。基本示例:////true//2 is nan(true);//false isnan(false);//true//3 is nan(37);//false isnan(' 37 ');//false//4 isnan(null);// falseisNaN(未定义);//true//5 isnan({ });//true isnan({ name:' LinYY ' });//真实思考:为什么上面4中的结果是null false?未定义的结果为真?对象是假的吗?要解决这个问题,先看一些相关的例子:基元类型,基本类型字符isnan(' 12 ')//number(' 12 ')>:12-& gt;falseisNaN('12,23 ')//= = & gt;数字(' 12,23 ')-& gt;12,23 ->true isnan(12)//number(12)>:12-& gt;真引用类型对象Leto = { } isnan(o)//= = >;trueo . tostring()//= = & gt;"[object Object]",Number("[Object Object]")= = & gt;True array let arr = [12,23]isnan(arr)//= = >:true arr . tostring()/= = & gt;“12,23”,所以数(“12,23”)= = >;truedataisNaN(new Date());// falseisNaN(新日期()。toString());// true解释了上面的问题nullisNaN(null) // false,因为Number(null)= > = >;0undefinedisNaN(未定义)// true as Number(undefined)= = > = >:NaN指的是类型isNaN(')//false,因为Number(')-->:0 //同理:isNaN([]) // false,因为[]。tostring()->;',数字(')-& gt;0isNaN([12,23]) //由于[12,23]而为真。tostring()->;"[object Object]",Number("[Object Object]")= = & gt;真总结:isNaN()在两种情况下引用数据类型对象,先用toString方法转换成字符串,再用Number方法转换成数字类型。其余的基本类型通过number方法直接转换为number类型。想想怎么判断一个数能不能是有效数?是这样吗?if(isnan(param)= = nan){ console . log('不是有效数字')}显然,上面的写法是错误的。因为NaN == NaN也是不相等的,所以上面的代码永远不会执行正确的使用方法if(isNaN(param)){ console.log('不是有效数字')}文章地址:掘金博客地址体验更多效果。 源码欢迎start(期),以后内容会不断升级。