ES6新增的BigInt和Number的异同
最新的ECMAScript标准定义了8种数据类型
- 7种原始类型:
- undefined
- null
- Boolean
- Number
- String
- BigInt
- Symbol
- 1种复杂数据类型:Object
BigInt和Number两者必须转换为同一种类型才能进行运算,不能混合运算。
BigInt | Number | |
---|---|---|
表示范围 | 可以表示任意大的整数 | ±2^53 - 1 |
使用Math对象中的方法 | 不可以 | 可以 |
互相转化 | BigInt转Number时可能会丢失精度 | 无需担心精度 |
可以在一个整数字面量后面加n的方式定义一个BigInt,或调用BigInt()
const big1 = 9007199254740991n;
const big2 = BigInt(9007199254740991)
BitInt和Number之间可以比较
0n === 0
// ↪ false
0n == 0
// ↪ true
1n < 2
// ↪ true
2n > 1
// ↪ true
2 > 2
// ↪ false
2n > 2
// ↪ false
2n >= 2
// ↪ true