美文网首页
ES11-BigInt类型

ES11-BigInt类型

作者: hunter97 | 来源:发表于2022-04-19 17:14 被阅读0次

我们在使用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类型,因为任何隐式强制类型转化都会导致精度丢失;

兼容性

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

相关文章

网友评论

      本文标题:ES11-BigInt类型

      本文链接:https://www.haomeiwen.com/subject/irmvertx.html