JavaScript:BigInt

如果可以实现记得点赞分享,谢谢老铁~

在这里插入图片描述

最新的ES2020定义了九种数据类型。六种数据类型是原语,由 typeof 运算符、null、Object 和 Function 检查。基元是未定义的、布尔型、数字、字符串、符号,新的基元是 BigInt。在 JavaScript 中,我们第一次可以存储大于 Number 的数字,换句话说,存储大于 2 53 - 1 的整数。

我们可以通过在整数末尾附加**n或使用构造函数****BigInt()**来创建 BigInt

const big = 12345n;
typeof big; // "bigint"
const sameBig = BigInt("12345"); //12345n
const oneMoreSame = BigInt(12345); //12345n

使用 BigInt 进行操作

像+、*、-、**、% 这样的操作可以像数字一样使用。

const huge = 20n + 4n; //24n
const oneMore = 20n - 4n; //16n
const oneBig = 20n ** 4n; //160000n

还可以使用按位运算符,但 >>>(零填充右移)除外,因为所有 BigInt 都已签名。

const big = 20n & 4n; //4n

我们需要记住,/ 运算的结果将像任何其他数字一样向 0 舍入。

const big = 20n / 4n; //5n
const huge = 20n / 3n; //6n

不支持一元 +。

const big = +3n; //Error: Cannot convert a BigInt value to a number

与其他类型的比较和运算

您不能将 BigInt 与其他类型混合使用,甚至不能与 Number 混合使用。像这样的事情会给你一个错误。

const big = 20n + 4; //Error: Cannot mix BigInt and other types

但我们可以转换它们。

const big = 20n + BigInt(4); //24n
const huge = Number(20n) + 4; //24

使用字符串,可以连接 BigInt。

const big = 20n + "4"; //"204"

BigInt 松散地等于 Number,但并不严格相等。

20n == 20; //true
20n === 20; //false

Number 和 BigInt 数据类型可以自然地进行比较。

20 > 10n; //true
20n >= 20; // true

我们可以看到 Number 和 BigInt 之间的相似之处,但重要的一点是它不能与内置 Math 对象中的方法一起使用。另一方面,当 BigInt 与逻辑运算符(||、&&、!)一起使用、转换为布尔值并在条件测试中使用时,其行为类似于 Number。

const big = Boolean(20n); //true
!big; //false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端加油站

你遇到的坑将由我来踩

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

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

打赏作者

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

抵扣说明:

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

余额充值