背景
JS基本数据类型Number使用IEEE 754格式表示整数和浮点值(在某些语言中也叫双精度值)。它可以表示的最大安全范围是[-2^53-1, 2^53-1],超出这个范围就是失真。
console.log(Number.MAX_SAFE_INTEGER);
//9007199254740991
console.log(Number.MAX_SAFE_INTEGER + 1);
//9007199254740992
console.log(Number.MAX_SAFE_INTEGER + 2);
//9007199254740992
console.log(Number.MAX_SAFE_INTEGER + 3);
//9007199254740994
console.log(Number.MAX_SAFE_INTEGER + 4);
//9007199254740996
console.log(Number.MAX_SAFE_INTEGER + 5);
//9007199254740996
为此JavaScript于2019.7.22正式公布BigInt,并成为第八个基本数据类型。
一、BigInt是什么?
BigInt 是一种内置对象,它提供了一种方法来表示超出 [-2^53-1, 2^53-1]范围的整数。BigInt 可以用任意精度表示整数。
二、使用方法
1.创建
法一:在一个整数字面量后面加 n 的方式定义一个 BigInt ,如:10n;
法二:调用函数 BigInt()(但不包含 new 运算符)并传递一个整数值或字符 串值。
const theBiggestInt = 9007199254740991n;
const alsoHuge = BigInt(9007199254740991);
// ↪ 9007199254740991n
const hugeString