我是靠谱客的博主 冷傲往事,最近开发中收集的这篇文章主要介绍Java中的isnan函数_JS扫盲:你不知道的isNaN(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类型分类

原始类型: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()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部