此篇文章讲解目录:
1. Number类型
2. 进制
3. 浮点数
4. 数值范围
5. NaN
6. 数值的转换方式
Number()
parseInt()
parseFloat()
使用 + 和 - 操作符
Number类型
Number类型包含:正数、负数、零、小数、NaN
进制
十进制(最常用)
八进制(仅了解即可)
第一位必须是0
有效序列0-7(0后面跟着由0-7[包括0-7]之间的数字组成的序列)
如果超出范围
前导位0被忽略
后续数值以十进制计数
十六进制(仅了解即可)
前两位必须0x
有效序列
0-9
A-F
浮点数
小数点后至少一位数字
可以用科学计算法
小数点后带有6个0的浮点数
以e为底*10的正负N次幂
最高精度:17位小数
缺点
存在舍入误差(浮点数之间的运算也是非常不准确的,需要转成整数,然后再运算,运算后再转回对应的小数)
无法测试特定浮点数值,不要直接对浮点数进行运算;
在做有浮点数运算的情况下,先转成整数,然后得到结果后再转成小数;
数值范围
最小值 Number.MIN_VALUE
最大值 Number.MAX_VALUE:
超出范围
正无穷
Infinity
Number.POSITIVE_INFINTY
负无穷
-Infinity
Number.NEGATIVE_INFINITY
缺陷
无法参与下一次计算
检测方法,用isFinite
超出范围 false
合法范围true
NaN
含义
Not a Number
非数值,不是一个数值,但是NaN属于数值类型;
特点
任何涉及NaN的操作都将返回NaN
NaN与人和数值都不相等包括其自身
检测 isNaN
可以转换为数值,为false
不能转换为数值,为true
数值类型的转换方式
Number() 最霸道的转换方法,只要不是纯数值类型,全部不能成功转换
Boolean转换为数值的时候
true转为1;
flase转为0;
null转换为数值的时候 转换为0
undefined转换为数值的时候 转为NaN
string转换为数值的时候
如果只包含数字
转为十进制数
前导0被忽略
如果包含有效浮点格式
浮点数值
忽略前导0
包含有效十六进制格式;相同大小的十六进制整数
空字符串转为0;备注:""是空字符串 " "这个就不是空字符串了
其他格式字符串NaN
parseInt() 是Number的升级版本;有字符串出现也可能转换为数值;从前往后开始转,只要有一位可以转为数字都可以成功转换为数字;123sad可以转为123;
parseInt特性
忽略前导空格,直接找到第一个非空格字符
不是数字字符或负号,退出,解析不出数字
小数点不是有效数字
如果第一个是数字字符
解析所有后续字符
遇到非数字字符结束
parseInt参数
参数1、要解析的字符串
参数2、转换时所使用的基数;为了消除在使用parentInt函数时可能导致的格式,第二个参数可以指定要解析的基数,16就是十六进制;一般不传第二个参数
parseFloat() 属于parseInt的升级版本;可以转换为浮点数123.12dw可以转换为123.12;
从第一个字符开始解析
遇到无效浮点格式后结束
只有第一个小数点有效
忽略前导0
十六进制始终为0
没有小数点或小数点后全0;转换为整数
使用 "+" 和 "-" 操作符也可以转换(比如 "1.1"+2.1会显示成1.12.1,因为系统会认为是字符串拼接,但是可以使用 +"1.1"+2.1,则可以显示为3.2)
领取专属 10元无门槛券
私享最新 技术干货