在js中,number数据类型可能算最令人关注的的类型之一了。
number类型分为整数和浮点数。
一,整型数,整型又分为十进制,八进制,十六进制。
十进制即是生活中接触到的;而八进制数的首位必须是零(0),各位数必须在0到7之间;十六进制数首位必须是0x,各位数必须是0到9,A到F之间,或者a到f,不区分大小写。
在进行算术运算时,都将被转换成10进制。
二,浮点数,浮点数即是小数。浮点数占用的内存空间是整型数的两倍。另外,浮点数在进行算术运算时精度远远不如整数。
三,数值的范围。
在JS中,由于内存的限制,最小值为Number.MIN_VALUE,最大值为Number.MAX_VALUE;超过最大值,会被替换成-Infinity,超过最大值则会被替换成Infinity。
访问负无穷可以使用常量Number.NEGATIVE_INFINITY,访问正无穷可以使用Number.POSITIVE_INFINITY。
四,NaN,非数值,它与任何值都不相等,包括自己。判断某个数是不是非数值可以使用isNaN。但需注意,使用该函数时会在后台调用方法试图转换参数到数值,而且该函数可以对对象调用,会在后台调用该对象的valueOf方法,然后判断返回值。
五,数值转换,包括三个函数 Number parseInt parseFloat 。
1,Number函数。该方法可以接收任何类型的值。
(1)布尔型,转换成1,0.
(2)数字,不转换
(3)NULL 转换成0
(4)UNDEFINED 转换成NaN。
(5)字符串,十六进制转换成十进制
空,转换成0
纯字符,NaN
对象,调用valueOf。
2,parseInt函数,专门转换字符串。忽略字符串前面的空格,直到遇到非空格开始转换。遇到非数字则结束。另外可以接收一个基数数,能够把字符串转换成指定进制的数字。如接收2,8,10,16。建议无论什么情况都指明基数。如parseInt("1234",16)。
3,parseFloat 和parseInt最大的不同是对十六进制数始终会转化成0;