概述
类型分类
原始类型:Number,String,Boolean,null,undefined,symbol(ES6新增)
引用类型:object(数组,Data,正则...),function
原始类型
number
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(null); // false
isNaN(undefined); // true
//5
isNaN({}); // true
isNaN({name: 'LinYY'}); // true
思考:上面 4 中的结果为什么 null 是 false 呢?undefined 结果是 true?object 是false? 解答这个原因先看几个相关的示例
原始类型
基本类型
字符
isNaN('12') // Number('12') > 12 -> false
isNaN('12,23') // ==>Number('12, 23') -> 12,23 -> true
数字
isNaN(12) // Number(12) > 12 -> false
引用类型
对象
let o = {}
isNaN(o) // ==> true
o.toString() // ==> "[object Object]", Number("[object Object]") ==> true
数组
let arr = [12, 23]
isNaN(arr) // ==> true
arr.toString() // ==> "12, 23", 所以 Number("12, 23") ==> true
data
isNaN(new Date()); // false
isNaN(new Date().toString()); // true
解释上面问题
null
isNaN(null) // false, 因为 Number(null) ==> 0
undefined
isNaN(undefined) // true。因为 Number(undefined) ==> NaN
引用类型
isNaN('') // false,因为 Number('') -> 0。
//同理:
isNaN([]) // false,因为 [].toString() ->'' ,Number('') -> 0
isNaN([12, 23]) // true 因为[12, 23].toString()->"[object Object]", Number("[object Object]") ==> true
总结:isNaN() 使用分两种情况
引用数据类型 object, 先通过 toString 方法转化成字符串,再通过 Number 方法转化成数字类型
其他基本类型 直接使用 Number 方法转化成数字类型
思考,怎么判断一个数是否为有效数字?
这样吗?
if(isNaN(param) == NaN){
console.log('不是有效数字')
}
明显上面的写法是错误的,因为 NaN == NaN 也是不相等的,所以上面代码永远不会执行
正确使用方法
if(isNaN(param)){
console.log('不是有效数字')
}
文章地址:
掘金
博客地址 体验效果更好。
源码地址 欢迎start (issue),以后会不断的更新内容
最后
以上就是冷傲往事为你收集整理的Java中的isnan函数_JS扫盲:你不知道的isNaN()的全部内容,希望文章能够帮你解决Java中的isnan函数_JS扫盲:你不知道的isNaN()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复