JS -- number数据类型详解

188 阅读1分钟

1、什么是number数据类型

有效数字(正数、负数、0)NaN(not a number)可以理解为非有效数字

2、其他数据类型转number类型

三种方法:Number()、parseInt()、parseFloat()

1、Number(val)

  • 字符串:只有里面含有非有效数字就为NaN
  • 布尔:true为1,false为0
  • null:为0;
  • undefined:为NaN
  • 普通对象:会隐实转化为字符串再进行转数字,而对象转字符串都是'[object Object]',因此包含非有效数字,所以为NaN;即普通对象转数字都是NaN
  • 数组:会将数组从左往右的每一项都变为字符串,然后每一项之间使用逗号进行拼接,最后组成新的字符串;空数组为0

2、parseInt(val) | parseFloat(val)

从左向右的依次查找,直到遇到非有效数字就停止,返回查找的结果,parseInt不可以识别小数点,parseFloat可以识别一位小数点

3、练习

1、Number(val)

Number('12')      --->12
Number('12PX')      --->NaN
Number(true)      --->1
Number(false)      --->0
Number(null)      --->0
Number(undefined)     --->NaN
Number({})      --->NaN
Number([])      --->0
Number([1])      --->1
Number([1,2])      --->NaN

2、parseInt(val) | parseFloat(val)

parseInt('12')     --->12
parseInt('12.2')     --->12
parseInt('12px')     --->12
parseInt('width:12.2px')     --->NaN
parseFloat('width:12.2px')     --->NaN
parseFloat('12.2')     --->12.2
parseFloat('12.2.2')     --->12.2
parseFloat('12')     --->12

3、判断一个数字是不是有效数字

NaN 和任何数都不相等,包括它自己本身,因此判断一个数是不是有效数字使用isNaN();是有效数字返回false,不是有效数字返回true (自己总结的小技巧:看这个数字Number()的结果,如果不是NaN,那isNaN的结果就是false)

isNaN("12.2PX")   -->true
isNaN("12.2")   -->false