三、Number数字数据类型

包含:常规数字、NaN

NaN

NaN:not a number(不是一个数,但它隶属于数字类型)

NaN:和任何值(包括自己都不相等):NaN!=NaN,所以不能用相等方式判断是否是有效数字

//console.log([val]):在控制台输出
console.log('hello world');

//==进行比较
console.log(1==2);

//判断是否是一个有效数字
    //NaN和任何数值都不相等,包括自己
console.log('AA'==NaN);     //false
console.log(10==NaN);       //false

isNaN

检测一个值是否为非有效数字,如果不是在则返回true,反之则false

在使用isNaN进行检测的时候,首先会验证检测的值是否为number数字类型,如果不是number()这个方法,把值转换为数字类型,然后再检测

//isNaN([val])
console.log(isNaN(10));     //false
console.log(isNaN('AA'));   //true		//number('AA')	=>	NaN	=>isNaN(NaN)	=>true


console.log(isNaN('10'));   //false		//isNaN(number('10'))	=>	false

其他类型转换为数字类

  • Number([val])

    把字符转换为数字,只要字符串中包含任意一个非有效数字字符(第一个除外)结果都是NaN,空字符串(null)变为数字0

    console.log(Number('12.5'))		//12.5
    
    console.log(Number('12.5px'))	//NaN
    console.log(Number('12.5.5'))	//NaN
    
    console.log(Number(''))			//0
    
    //布尔转换为数字
    console.log(Number(true))			//1
    console.log(Number(flase))			//0
    
    console.log(Number(null))			//0
    console.log(Number(undefined))		//NaN
    
    //引用数据类型转换为数字,是先基于toString方法转换为字符串类型,然后再转换为数字 
    console.log(Number({name:'xx'}))	//NaN		//{}/{xxx:'xxx'}.toString()
    console.log(Number([]))				//0
    console.log(Number([12]))			//12
    console.log(Number([12,23]))		//NaN
    
    
    
  • parseInt/parseFloat([val,[进制]])

    也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),找到的当作数字返回

    let str='12.9px';
    console.log(Number(str))				//NaN
    console.log(Number(parseInt(str)))		//12
    console.log(Number(parseFloat(str)))	//12.9
    console.log(Number(parseFloat('width:12.9px')))	//NaN
    
    
上一篇:Js中的 NaN


下一篇:JS学习笔记:一切都是True