类型分类
原始类型: Number、String、Boolean、null、undefined、symbol(es6新功能) ) ) ) ) ) ) ) ) ) ) ) )。
引用类型: object (数组、Data、正则…)、函数
原始类型
数字
isNaN用于判断NaN,首先尝试将参数强制转换为数字,然后返回boolean
基本概念: isNaN ) )函数用于确定值是否为NaN。
基本示例:
//1
Isnan(NaN ); //true
//2
Isnan(true; //false
Isnan(false; //true
//3
Isnan(37; //false
Isnan('37 ); //false
//4
isnan (空; //false
Isnan(undefined ); //true
//5
Isnan (); //true
Isnan({name:'linyy'} ); //true
思考:上面4的结果为什么null为false呢? undefined的结果为真吗? 对象是否为假? 要解决这个原因,我们先来看看几个相关的例子
原始类型
基本类型
文字
Isnan(12 )/number ) ) 12 - false
isnan (12,23 )/==number ) ) 12,23 ) )-12,23-true
数字
Isnan(12 )//number (12 ) 12 ) 12 - false
参照类型
对象
let o={}
Isnan(o )//==true
o.toString ()//=([ object ] ),number ) ) [objectobject] ) )==true
数组
letarr=[ 12,23 ]
Isnan(arr(//==true
arr.toString ()//=(12,23 ),所以number ) ) 12,23 )==true
数据
Isnan(newdate ); //false
isnan (new date.tostring ) ); //true
说明上面的问题
空值
因为isnan(null )//false,number ) null )==0
未定义
isnan (未定义)//true。 因为number(undefined )==NaN
参照类型
因为isNaN (' )//false,Number (' )- 0。
//同样:
Isnan () () ()//false,) ().tostring ) )-)、Number (' ' )- 0
isnan (12,23 )/true (12,23 ).tostring )-'[object Object] ',number([objectobject] ' )==true
总结: isNaN ()的使用分为两种情况
引用数据类型object,用toString方法将其转换为字符串,用Number方法将其转换为数值类型
其他基本类型直接使用Number方法转换为数字类型
思考一下,怎么判断一个数是否是有效的数字?
是吗?
if(Isnan(Param )==NaN ) {
console.log '不是有效的数字')
}
很明显上面的写法是错误的。 NaN==NaN也不相等,所以上面的代码永远不会执行
正确的使用方法
if(Isnan(Param ) ) }
console.log '不是有效的数字')
}
文章地址:
挖金子
博客地址体验更有效。
源代码地址欢迎开始(issue ),今后也会继续更新内容