Number 数字类型详解
1. Number类型
在现代 JavaScript 中,数字 Number
有两种类型:
-
JavaScript
中的常规数字以 64 位的格式IEEE-754
存储,也被称为双精度浮点数。 -
BigInt
数字,用于表示任意长度的整数。有时会需要它们,因为常规数字不能安全地超过 253 或小于 -253,仅在少数特殊领域才会用到BigInt
。
let num = 22; // Number
let num1 = 23426456456456n; // BigInt
属性 | 描述 |
---|---|
Number.MAX_VALUE | JavaScript 中所能表示的最大值 |
Number.MIN_VALUE | JavaScript 中所能表示的最小值 |
Number.NaN | 非数字 |
Number.NEGATIVE_INFINITY | 负无穷,在溢出时返回 |
Number.POSITIVE_INFINITY | 正无穷,在溢出时返回 |
Number.EPSILON | 表示 1 与 Number 所能表示的大于 1 的最小浮点数之间的差 |
Number.MIN_SAFE_INTEGER | 最小安全整数,即 -9007199254740991 |
Number.MAX_SAFE_INTEGER | 最大安全整数,即 9007199254740991 |
整数 就是整数,例如 10, 400,或者 -5
浮点数 (浮点) 有小数点或小数位,例如 12.5,和 56.7786543,浮点数值的最高精度是 17 位小数
双精度 双精度是一种特定类型的浮点数,它们具有比标准浮点数更高的精度
2. 数字编写方式
ES2021
,允许JavaScript
的数值使用下划线(_
)作为分隔符
这个数值分隔符没有指定间隔的位数,也就是说,可以每三位添加一个分隔符,也可以每一位、每两位、每四位添加一个,小数和科学计数法也可以使用数值分隔符
let num = 1_000_000_000;// 1000000000
// 与1000000000相等
let num1 = 0.00_00_7; // 0.00007
// 与0.00007相等
数值分隔符有几个使用注意点
- 不能放在数值的最前面或最后面
- 不能两个或两个以上的分隔符连在一起
- 小数点的前后不能有分隔符
- 科学计数法里面,表示指数的
e
或E
前后不能有分隔符
在 JavaScript
中,我们可以通过在数字后面附加字母 "e"
并指定零的个数来缩短数字
e
把数字乘以 1
后面跟着给定数量的 0
的数字
e
后面的负数表示除以 1 后面跟着给定数量的 0 的数字
let num = 1e5; // 100000
// 0.34的左边有两个0
let num1 = 0.34e-2; // 0.34/100 = 0.0034
3. 进制转换
num.toString(base)
返回在给定 base
进制数字系统中 num
的字符串表示形式
base
的范围可以从 2
到 36
。默认情况下是 10
- base=2 计算机的最基础语言,主要用于调试按位操作,数字可以是
0
或1
- base=8 数字可以是
0..7
- base=10 全世界通用的十进制,数字可以是
0..9
,进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值 - base=16 用于十六进制颜色,字符编码等,数字可以是
0..9
或A..F
- base=36 是最大进制,数字可以是
0..9
或A..Z
。所有拉丁字母都被用于了表示数字
// num.toString(base) base范围为2-36 默认为10
let num = 255;
console.log(num.toString(10)); // 255
console.log(num.toString(2)); // 11111111
console.log(num.toString(8)); // 377
console.log(num.toString(16)); // ff
console.log(num.toString(36)); // 73
// 将m进制的num 转换为n进制
function main(num, m, n) {
var s = num + '';
var result = parseInt(s, m)
.toString(n);
return result;
}
main('ff', 16, 2)