ES11中的bigint

上一周小编因为自己的事情,没有持续更新,还望大家谅解,趁着今天醒得早,小编继续和大家学(si)习(ke)es11中的新语法。大家还可以关注我的微信公众号,蜗牛全栈。

在js中,对整数类型的数据,存在着最大极限,这个极限就是

const max = 2**53 // js幂运算
console.log(max) // 9007199254740992

同样,为了计算的准确性,js也定义了最大安全整数,这个整数是

console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991

当我们的项目需要的数字很大的时候,会出现这样的乌龙事件

const max = 2**53 // js幂运算
console.log(max === max+1) //  true
const num = 9007199254740993
console.log(num) // 9007199254740992

为了解决这样的问题,es11中提出了一个新的基本类型,bigint。在使用的时候,可以有两种方法。

一、直接添加字母n,就像这样

const num = 9007199254740993n
console.log(num) // 9007199254740993n
console.log(typeof num)  // bigint

虽然是一种新的数据类型,但是有些“规矩”还是要遵守,比如

console.log(1n==1) // true 只要值相等,返回true
console.log(1n===1) // false 必须值和类型都相等,才返回false

二、小编理解的类似构造函数,就像这样

const num = BigInt(9007199254740993n)
console.log(num) // 9007199254740993n

同样,bigint类型也可以进行我们认知内的运算,就像这样

const num1 = BigInt(9007199254740993n)
const num2 = BigInt(9007199254740993n)
console.log(num1+num2) // 18014398509481986n

数据范围是扩大了,但是每次数字后面跟个n,看着总感觉怪怪的,为了达到视觉上的美感,我们可以将bigint转为字符串数据类型,就像这样

const num = BigInt(18014398509481986n)
console.log(num.toString()) // 18014398509481986

同样,我们需要转换成bigint的时候,通过BigInt再转换一次就可以了

const str = '18014398509481986'
console.log(BigInt(str)) // 18014398509481986n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鹰3995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值