本文参考 JavaScript Number isFinite() 方法 | 菜鸟教程
包含整数(整形)与小数(浮点数),包含负值
本文并非列出了数字型的所有用法,如果想深究的话可以看一下这个 Number - JavaScript | MDN
目录
4.2 判断是否为整数 Number.isInteger()
5.1 判断数值是否为有限的数字 Number.isFinite()
5.2 指数计数法表示数字 toExponsential()
5.4 判断是否为安全整数 Number.isSafeInteger()
1 改变进制
默认是10进制,还可以定义其他进制
1.1 二进制
在数字前加0b表示2进制
10101相当于十进制的 1+0*2+1*4+0*8+1*16 = 21
1.2 八进制
以0开头表示8进制,这个表示八进制的77
相当于10进制的 7*8+7 = 63
我们验证一下,在JS中输出默认为10进制
1.3 十六进制
在数字前加0x表示16进制
F3相当于10进制的 15*16+3 = 243
2 正值最大值与最小值
Number.MAX_VALUE是最大值,Number.MIN_VALUE是最小值,我们打印出来看一下
正值是不能超过这个范围的,负值就是反过来,最大不超过-5e-324,最小不超过-1.7976931348623157e+308
如果数值超出了这个范围很多的时候,会被认定为无穷大或无穷小,因为位数太小会被直接隐藏起来
3 特殊值
3.1 无穷大 Infinity
Infinity本身就是一个数值型变量,如果我们将这样设置Infinity是无效的
我们同样可以将其设置给另一个变量
我们可以通过typeof确定变量类型,typeof相当于python中的type
发现确实是数值型
typeof后面跟的括号可写可不写,不写给个空格就行
我们现在让可用最大数值*2
3.2 负无穷大 -Infinity
就是对无穷大加了一个负值
3.3 非数值 NaN
NaN(Not a Number)表示不是一个数值的值,但是它本身的类型是number
NaN多出现在非数值运算中,比如
计算中涉及数值算不了的(null能算出来,后面会提到),都会变成NaN
我们可以通过 isNaN()这个方法验证是不是NaN
第一个是NaN,所以返回true,第二个不是NaN,所以返回false
总的来说,如果是数字isNaN()返回false,如果不是数字isNaN()返回true
NaN是不等于自身的,我们在某些情况下进行排错需要注意这个问题
4 常用内置方法
4.1 转换为字符串 toString()
4.2 判断是否为整数 Number.isInteger()
如果是字符则会判定为false
10.0 同样判定为整数
4.3 保留指定位数小数 toFixed()
我们现在保留两位小数
注意会四舍五入,且返回值为字符串
如果不给参数就是保留整数,同样是四舍五入
4.4 将数字保留指定长度 toPrecision()
我们现在只让它有三个数
注意返回值为字符串且四舍五入
不给参数就是保留所有位数且转换为字符串
如果给的保留位数超出本身含有的位数,它在后面会补0
5 不常用内置方法
5.1 判断数值是否为有限的数字 Number.isFinite()
5.2 指数计数法表示数字 toExponsential()
我们注意这里的类型变为了字符串
参数可以添加保留小数,如果不写就是保留所有小数,我们现在保留一位小数
这里我们注意保留小数是四舍五入的
当整数位够多时是这样的
5.4 判断是否为安全整数 Number.isSafeInteger()
其余与判定整数功能相同
6 小数的精度问题
在我们计算小数的时候会出现这种情况,很多语言都会出现这种情况,处理方法也是一致的
整数不会有这种问题,所以我们可以给要加的数值乘一个很大的数,然后再除很大的数,比如
7 下划线表示数字
比如1000可以写成1_000