bigInt数据类型

简述
BigInt数据类型提供了一种方法来表示大于2^53-1的整数。BigInt可以表示任意大的整数

作用
解决精度缺失的问题:BigInt数据类型比Number类型支持更大的整数值,Number类型只能安全的支持-9007199254740991(-(2^53-1)) 和 9007199254740991(2^53-1)之间的整数,任何超过这个范围的数值都会失去精度;而BigInt可以解决这个问题(下面会讲如何使用BigInt)
举例:

console.log(9007199254740999) //9007199254741000
console.log(9007199254740993===9007199254740992) //true
如图,当数值超过Number数据类型支持的安全范围值时,将会被四舍五入,从而导致精度缺失的问题

适用场景举例
更加准确的使用时间戳和数值比较大的ID

BIgInt如何使用
1.在整数的末尾追加n

console.log(9007199254740999n)//9007199254740999
2.调用BigInt()构造函数

var bigInt = BigInt(“9007199254740999”);
console.log(bigInt) //9007199254740999n
BigInt构造函数
(1)传递给BigInt()的参数将自动转换为BigInt:

BigInt(“2”); // → 2n
BigInt(2); // → 2n
BigInt(true); // → 1n
BigInt(false); // → 0n
(2)无法转换的数据类型和值会引发异常:

BigInt(10.3); // → RangeError: Cannot convert null to a BigInt
BigInt(null); // → TypeError: Cannot convert null to a BigInt
BigInt(“a”); // → SyntaxError: Cannot convert a to a BigInt
备注:
(1)BigInt除了不能使用一元加号运算符外,其他的运算符都可以使用

console.log(+1n) // Uncaught TypeError: Cannot convert a BigInt value to a number
(2)BigInt和Number之间不能进行混合操作

console.log(1n+5)
//Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversions

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值