Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

js 中的类型 #43

Open
lovelmh13 opened this issue Jul 25, 2020 · 0 comments
Open

js 中的类型 #43

lovelmh13 opened this issue Jul 25, 2020 · 0 comments

Comments

@lovelmh13
Copy link
Owner

lovelmh13 commented Jul 25, 2020

最近看MDN的时候偶然看到 基本类型比我之前记的多了一个BigInt,特此记录一下

7个基本类型和1个复杂类型:

  1. Boolean
  2. Null
  3. Undefined
  4. Number
  5. String
  6. Symbol
  7. BigInt

    8.Object

补充:也可以说 7 种(6种基础类型,一种复杂类型),其中 number 和 bigint 统称为 numeric
来自: ECMA

然后Object里面有:Function , Array, Date, TypedArray, Maps, Sets, WeakMaps, WeakSets等

BigInt

BigInt类型是 JavaScript 中的一个基础的数值类型,可以用任意精度表示整数。使用 BigInt,您可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。BigInt是通过在整数末尾附加 n 或调用构造函数来创建的。
通过使用常量Number.MAX_SAFE_INTEGER,您可以获得可以用数字递增的最安全的值。通过引入 BigInt,您可以操作超过Number.MAX_SAFE_INTEGER的数字。您可以在下面的示例中观察到这一点,其中递增Number.MAX_SAFE_INTEGER会返回预期的结果:

> const x = 2n ** 53n;
9007199254740992n
> const y = x + 1n; 
9007199254740993n

可以对BigInt使用运算符+、*、-、**和%,就像对数字一样。BigInt 严格来说并不等于一个数字,但它是松散的。
在将BigInt转换为Boolean时,它的行为类似于一个数字:if、||、&&、Boolean 和!。
BigInt不能与数字互换操作。否则,将抛出TypeError。

参考: MDN

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant