js基础类型 Bigint

179 阅读1分钟

前言

今天上班摸鱼的时候, 偶然间看到了一个Bigint基础数据类型. 咦~ 这是啥呀? 本着打破砂锅问到底的精神 整理了一下,简单做一下记录

先来回顾一下js的八大数据类型

  • Number
  • String
  • Boolean
  • Null
  • Undefined
  • Symbol
  • Bigint
  • Object

有同学 可能就会问 Array呢? Map呢?... 被你吃了???
js中万物皆对象 所有的对象都是Obejct构造函数创造的 所以这里简单的先把 这些归于 Obejct

typeof [] => obejct
typeof new Map() => Object

回到我们今天的主角 Bigint

首先 我们都知道 js中的Number类型是有限制的 而这个限制 就基于 Number.MIN_SAFE_INTEGERNumber.MAX_SAFE_INTEGER之间 如果超出这个范围 那么打印出来的就是 Infinity 或者 -Infinity

所以我们今天的主角登场了 借用MDN上的解释就是

BigInt 是一种内置对象,它提供了一种方法来表示大于 2**53 - 1 的整数。
这原本是 Javascript中可以用 Number表示的最大数字。BigInt可以表示任意大的整数。

使用

可以用在一个整数字面量后面加 n 的方式定义一个 BigInt ,如:10n,或者调用函数BigInt()

let num = 2n;
let num2 = 2n ** 1000n; 

需要注意的是 n 只是 定义BigInt类型的一种语法

let num1 = 2;
let num2 = 2n;
console.log(typeof num1)   //number
console.log(typeof num2)   //bigint
console.log(num1 === num2) // false
console.log(num1 == num2)  // true

暂时就先写这么多吧 其实我们工作中一般也用不到这个,有个印象,不要在面试的时候被难住 就可以啦