ES11-BigInt类型


我们在使用js进行一下大数计算的时候,由于精度限制,会带来计算结果不准确的问题,如:

const max = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < 10; i++) {
  console.log(`${max} + ${i} = ${max + i}`)
}
运行结果

我们可以发现当数据达到一定范围以后,js的计算结果就不在正确,这时候我们就可以通过 ES11BigInt类型来解决这一问题。
什么是 BigIntBigInt是JavaScript中一种可以用来表示任意精度整数的基本数据类型。
使用如下:
const max = Number.MAX_SAFE_INTEGER;
for (let i = 0; i < 10; i++) {
 console.log(BigInt(max))
 console.log(BigInt(i))
 console.log(BigInt(max) + BigInt(i))
 console.log(`${BigInt(max)} + ${BigInt(i)} = ${BigInt(max) + BigInt(i)}`)
}
运行结果

由上我们可以看到计算结果已经恢复准确。

使用BigInt有以下几个注意事项:
1.生成一个BigInt类型的值只需要在任意整数后加上n做后缀即可;
2.BigIntJavaScript中新的的基础类型,所以可以用typeof操作符去检测;
3.当强制类型转化为布尔值时(例如在使用if,&&,||或者Boolean(int)时触发),BigInt遵循和Numebr一样的规则;
4.BigInt支持那些常见的运算符例如:+,-,*,/ ** %,包括一些按位运算符如|, & , <<, >> ^BigIntNumber类型值的表现一致;
5.不要混合操作BigInt类型和Number类型,因为任何隐式强制类型转化都会导致精度丢失;

兼容性

人生如白驹过隙死不足恨但夙心往志,不闻于末世矣。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值